0s autopkgtest [09:14:07]: starting date and time: 2024-11-16 09:14:07+0000 0s autopkgtest [09:14:07]: git checkout: 6f3be7a8 Fix armhf LXD image generation for plucky 0s autopkgtest [09:14:07]: host juju-7f2275-prod-proposed-migration-environment-15; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.2snjyopq/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:libgetopt-long-descriptive-perl --apt-upgrade libjson-schema-modern-perl --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=libgetopt-long-descriptive-perl/0.115-1 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup --name adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 --image adt/ubuntu-plucky-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-15 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux -e ''"'"'http_proxy=http://squid.internal:3128'"'"'' -e ''"'"'https_proxy=http://squid.internal:3128'"'"'' -e ''"'"'no_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com'"'"'' --mirror=http://ftpmaster.internal/ubuntu/ 410s nova [W] Using flock in prodstack6-ppc64el 410s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 410s nova [E] nova boot failed (attempt #0): 410s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 410s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 410s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 410s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 410s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 410s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 410s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 410s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:14:59 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-eef589b3-4c0e-4e7f-ba27-38da77977fd9 410s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 410s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-eef589b3-4c0e-4e7f-ba27-38da77977fd9 410s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 410s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 410s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["kbopQ9UTQYaMhHA5rI3LqA"], "expires_at": "2024-11-17T09:14:59.000000Z", "issued_at": "2024-11-16T09:14:59.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}, {"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 410s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" 410s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" 410s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 410s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:14:59 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-91912e4a-d95c-4c49-aebb-ad4ba8de4107 x-openstack-request-id: req-91912e4a-d95c-4c49-aebb-ad4ba8de4107 410s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:14:59 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-91912e4a-d95c-4c49-aebb-ad4ba8de4107 x-openstack-request-id: req-91912e4a-d95c-4c49-aebb-ad4ba8de4107 410s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 410s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 410s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:14:59 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-82745ccf-1535-4771-a593-a026d48a3b5e x-openstack-request-id: req-82745ccf-1535-4771-a593-a026d48a3b5e 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:14:59 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-82745ccf-1535-4771-a593-a026d48a3b5e x-openstack-request-id: req-82745ccf-1535-4771-a593-a026d48a3b5e 410s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 410s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 410s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-82745ccf-1535-4771-a593-a026d48a3b5e 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-82745ccf-1535-4771-a593-a026d48a3b5e 410s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 410s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 410s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 410s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 410s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 410s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 410s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 410s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:00 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-a2266366-3e1b-474d-a5c4-8d1aa940d7cc 410s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 410s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-a2266366-3e1b-474d-a5c4-8d1aa940d7cc 410s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 410s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:15:00 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-49e6b63c-6d40-47e2-b68c-e2ac3ddf96ec x-openstack-request-id: req-49e6b63c-6d40-47e2-b68c-e2ac3ddf96ec 410s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-49e6b63c-6d40-47e2-b68c-e2ac3ddf96ec 410s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:00 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-73c5b63c-b20d-4b87-9a23-f7bdf57660de x-openstack-request-id: req-73c5b63c-b20d-4b87-9a23-f7bdf57660de 410s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-73c5b63c-b20d-4b87-9a23-f7bdf57660de 410s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:00 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8031879c-000a-4fbe-bd57-cd6132460e41 x-openstack-request-id: req-8031879c-000a-4fbe-bd57-cd6132460e41 410s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-8031879c-000a-4fbe-bd57-cd6132460e41 410s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 410s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:00 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 x-compute-request-id: req-6536e287-f6a6-40c6-9384-5688b4edea6b x-openstack-request-id: req-6536e287-f6a6-40c6-9384-5688b4edea6b 410s DEBUG (session:580) RESP BODY: {"server": {"id": "d41dcaf3-8387-4a4b-86a0-aee887b2b666", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "qGH6UbpexA8v"}} 410s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-6536e287-f6a6-40c6-9384-5688b4edea6b 410s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 HTTP/1.1" 200 3218 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:01 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9443db4a-1a17-4256-aeab-a4020c179360 x-openstack-request-id: req-9443db4a-1a17-4256-aeab-a4020c179360 410s DEBUG (session:580) RESP BODY: {"server": {"id": "d41dcaf3-8387-4a4b-86a0-aee887b2b666", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:15:01Z", "updated": "2024-11-16T09:15:01Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-hbrjyhvf", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 used request id req-9443db4a-1a17-4256-aeab-a4020c179360 410s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:01 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-7c1ef98e-5273-4364-958d-1b1fdbb7f64f 410s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 410s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-7c1ef98e-5273-4364-958d-1b1fdbb7f64f 410s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 410s | Property | Value | 410s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 410s | OS-DCF:diskConfig | MANUAL | 410s | OS-EXT-AZ:availability_zone | | 410s | OS-EXT-SRV-ATTR:host | - | 410s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 410s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 410s | OS-EXT-SRV-ATTR:instance_name | | 410s | OS-EXT-SRV-ATTR:kernel_id | | 410s | OS-EXT-SRV-ATTR:launch_index | 0 | 410s | OS-EXT-SRV-ATTR:ramdisk_id | | 410s | OS-EXT-SRV-ATTR:reservation_id | r-hbrjyhvf | 410s | OS-EXT-SRV-ATTR:root_device_name | - | 410s | OS-EXT-STS:power_state | 0 | 410s | OS-EXT-STS:task_state | scheduling | 410s | OS-EXT-STS:vm_state | building | 410s | OS-SRV-USG:launched_at | - | 410s | OS-SRV-USG:terminated_at | - | 410s | accessIPv4 | | 410s | accessIPv6 | | 410s | adminPass | qGH6UbpexA8v | 410s | config_drive | | 410s | created | 2024-11-16T09:15:01Z | 410s | description | - | 410s | flavor:disk | 20 | 410s | flavor:ephemeral | 0 | 410s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 410s | flavor:original_name | autopkgtest-ppc64el | 410s | flavor:ram | 4096 | 410s | flavor:swap | 0 | 410s | flavor:vcpus | 2 | 410s | hostId | | 410s | id | d41dcaf3-8387-4a4b-86a0-aee887b2b666 | 410s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 410s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 410s | locked | False | 410s | locked_reason | - | 410s | metadata | {} | 410s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 410s | os-extended-volumes:volumes_attached | [] | 410s | progress | 0 | 410s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 410s | server_groups | [] | 410s | status | BUILD | 410s | tags | [] | 410s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 410s | trusted_image_certificates | - | 410s | updated | 2024-11-16T09:15:01Z | 410s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 410s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 HTTP/1.1" 200 3218 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:01 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f2b6fa79-dbc8-482d-b1c4-a48a9f980895 x-openstack-request-id: req-f2b6fa79-dbc8-482d-b1c4-a48a9f980895 410s DEBUG (session:580) RESP BODY: {"server": {"id": "d41dcaf3-8387-4a4b-86a0-aee887b2b666", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:15:01Z", "updated": "2024-11-16T09:15:01Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-hbrjyhvf", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 used request id req-f2b6fa79-dbc8-482d-b1c4-a48a9f980895 410s 410s 410s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}820c1fd362c41f0c345e0db513ba9bfa376b9864e1f73fe3b090cc428ec5d995" -H "X-OpenStack-Nova-API-Version: 2.87" 410s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 HTTP/1.1" 200 3345 410s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3345 Content-Type: application/json Date: Sat, 16 Nov 2024 09:15:06 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-1c725f05-66e5-4945-b4d4-de1edd9f842c x-openstack-request-id: req-1c725f05-66e5-4945-b4d4-de1edd9f842c 410s DEBUG (session:580) RESP BODY: {"server": {"id": "d41dcaf3-8387-4a4b-86a0-aee887b2b666", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "ERROR", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:15:00Z", "updated": "2024-11-16T09:15:01Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666"}], "OS-DCF:diskConfig": "MANUAL", "fault": {"code": 500, "created": "2024-11-16T09:15:01Z", "message": "No valid host was found. There are not enough hosts available."}, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "instance-0005c402", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-hbrjyhvf", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": null, "OS-EXT-STS:vm_state": "error", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 410s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/d41dcaf3-8387-4a4b-86a0-aee887b2b666 used request id req-1c725f05-66e5-4945-b4d4-de1edd9f842c 410s DEBUG (shell:822) 410s Traceback (most recent call last): 410s File "/usr/lib/python3/dist-packages/novaclient/shell.py", line 820, in main 410s OpenStackComputeShell().main(argv) 410s File "/usr/lib/python3/dist-packages/novaclient/shell.py", line 742, in main 410s args.func(self.cs, args) 410s File "/usr/lib/python3/dist-packages/novaclient/v2/shell.py", line 980, in do_boot 410s _poll_for_status(cs.servers.get, server.id, 'building', ['active']) 410s File "/usr/lib/python3/dist-packages/novaclient/v2/shell.py", line 1019, in _poll_for_status 410s raise exceptions.ResourceInErrorState(obj) 410s novaclient.exceptions.ResourceInErrorState: 410s ERROR (ResourceInErrorState): 410s 410s Error building server 413s autopkgtest [09:21:00]: testbed dpkg architecture: ppc64el 413s autopkgtest [09:21:00]: testbed apt version: 2.9.8 413s autopkgtest [09:21:00]: @@@@@@@@@@@@@@@@@@@@ test bed setup 414s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 414s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [1024 kB] 414s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 414s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [94.0 kB] 414s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.5 kB] 414s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el Packages [154 kB] 414s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el Packages [782 kB] 414s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse ppc64el Packages [8932 B] 414s Fetched 2160 kB in 1s (2392 kB/s) 414s Reading package lists... 417s Reading package lists... 417s Building dependency tree... 417s Reading state information... 417s Calculating upgrade... 417s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 417s Reading package lists... 418s Building dependency tree... 418s Reading state information... 418s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 418s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 418s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 418s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 418s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 419s Reading package lists... 419s Reading package lists... 420s Building dependency tree... 420s Reading state information... 420s Calculating upgrade... 420s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 420s Reading package lists... 420s Building dependency tree... 420s Reading state information... 420s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 423s autopkgtest [09:21:10]: testbed running kernel: Linux 6.11.0-8-generic #8-Ubuntu SMP Mon Sep 16 13:49:23 UTC 2024 423s autopkgtest [09:21:10]: @@@@@@@@@@@@@@@@@@@@ apt-source libjson-schema-modern-perl 425s Get:1 http://ftpmaster.internal/ubuntu plucky/universe libjson-schema-modern-perl 0.593-1 (dsc) [4089 B] 425s Get:2 http://ftpmaster.internal/ubuntu plucky/universe libjson-schema-modern-perl 0.593-1 (tar) [204 kB] 425s Get:3 http://ftpmaster.internal/ubuntu plucky/universe libjson-schema-modern-perl 0.593-1 (diff) [7504 B] 425s gpgv: Signature made Sun Oct 27 17:32:08 2024 UTC 425s gpgv: using RSA key D1E1316E93A760A8104D85FABB3A68018649AA06 425s gpgv: Can't check signature: No public key 425s dpkg-source: warning: cannot verify inline signature for ./libjson-schema-modern-perl_0.593-1.dsc: no acceptable signature found 425s autopkgtest [09:21:12]: testing package libjson-schema-modern-perl version 0.593-1 425s autopkgtest [09:21:12]: build not needed 426s autopkgtest [09:21:13]: test autodep8-perl-build-deps: preparing testbed 427s Reading package lists... 427s Building dependency tree... 427s Reading state information... 427s Starting pkgProblemResolver with broken count: 0 427s Starting 2 pkgProblemResolver with broken count: 0 427s Done 428s The following additional packages will be installed: 428s autoconf autodep8 automake autopoint autotools-dev build-essential cpp 428s cpp-14 cpp-14-powerpc64le-linux-gnu cpp-powerpc64le-linux-gnu dctrl-tools 428s debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz g++ g++-14 428s g++-14-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu gcc gcc-14 428s gcc-14-powerpc64le-linux-gnu gcc-powerpc64le-linux-gnu gettext git git-man 428s intltool-debian javascript-common libalgorithm-c3-perl libarchive-zip-perl 428s libasan8 libautovivification-perl libb-hooks-endofscope-perl 428s libb-hooks-op-check-perl libcc1-0 libclass-c3-perl 428s libclass-data-inheritable-perl libclass-inspector-perl 428s libclass-method-modifiers-perl libclass-singleton-perl libclass-tiny-perl 428s libclass-xsaccessor-perl libcpan-meta-check-perl 428s libcpan-requirements-dynamic-perl libcpanel-json-xs-perl 428s libdata-optlist-perl libdata-validate-domain-perl 428s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 428s libdatetime-timezone-perl libdebhelper-perl libdevel-callchecker-perl 428s libdevel-cycle-perl libdevel-stacktrace-perl libdynaloader-functions-perl 428s libemail-address-xs-perl liberror-perl libeval-closure-perl 428s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 428s libextutils-hascompiler-perl libextutils-helpers-perl 428s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 428s libfile-copy-recursive-perl libfile-sharedir-perl 428s libfile-stripnondeterminism-perl libgcc-14-dev 428s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 428s libimport-into-perl libio-stringy-perl libisl23 libitm1 libjs-bootstrap5 428s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 428s liblsan0 libmodule-build-tiny-perl libmodule-implementation-perl 428s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 428s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 428s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 428s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 428s libparams-util-perl libparams-validate-perl 428s libparams-validationcompiler-perl libpath-tiny-perl libquadmath0 428s libref-util-perl libref-util-xs-perl librole-tiny-perl libsafe-isa-perl 428s libscope-guard-perl libsereal-decoder-perl libsereal-encoder-perl 428s libsereal-perl libsort-versions-perl libspecio-perl libstdc++-14-dev 428s libstrictures-perl libsub-exporter-perl libsub-exporter-progressive-perl 428s libsub-identify-perl libsub-install-perl libsub-name-perl libsub-quote-perl 428s libsyntax-keyword-try-perl libtest-deep-perl 428s libtest-deep-unorderedpairs-perl libtest-fatal-perl 428s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 428s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 428s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 428s libtry-tiny-perl libtsan2 libtype-tiny-perl libtype-tiny-xs-perl libubsan1 428s libvariable-magic-perl libxs-parse-keyword-perl libxstring-perl m4 428s pkg-perl-autopkgtest po-debconf 428s Suggested packages: 428s autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales 428s cpp-14-doc debtags dh-make gcc-14-doc gcc-multilib manpages-dev flex bison 428s gdb gcc-doc gdb-powerpc64le-linux-gnu gettext-doc libasprintf-dev 428s libgettextpo-dev git-daemon-run | git-daemon-sysvinit git-doc git-email 428s git-gui gitk gitweb git-cvs git-mediawiki git-svn apache2 | lighttpd | httpd 428s bootstrap-icons libjs-bootstrap5-doc libscalar-number-perl libstdc++-14-doc 428s libbareword-filehandles-perl libindirect-perl libmultidimensional-perl 428s libtool-doc gfortran | fortran95-compiler gcj-jdk libdevel-lexalias-perl 428s m4-doc libmail-box-perl 428s Recommended packages: 428s libclass-c3-xs-perl libdevel-lexalias-perl libarchive-cpio-perl node-jquery 428s libjson-xs-perl libev-perl libfuture-asyncawait-perl libio-socket-socks-perl 428s libio-socket-ssl-perl libmojo-server-fastcgi-perl libpackage-stash-xs-perl 428s libunicode-utf8-perl libreadonly-perl libmodule-pluggable-perl libltdl-dev 428s libmail-sendmail-perl 428s The following NEW packages will be installed: 428s autoconf autodep8 automake autopkgtest-satdep autopoint autotools-dev 428s build-essential cpp cpp-14 cpp-14-powerpc64le-linux-gnu 428s cpp-powerpc64le-linux-gnu dctrl-tools debhelper debugedit dh-autoreconf 428s dh-strip-nondeterminism dwz g++ g++-14 g++-14-powerpc64le-linux-gnu 428s g++-powerpc64le-linux-gnu gcc gcc-14 gcc-14-powerpc64le-linux-gnu 428s gcc-powerpc64le-linux-gnu gettext git git-man intltool-debian 428s javascript-common libalgorithm-c3-perl libarchive-zip-perl libasan8 428s libautovivification-perl libb-hooks-endofscope-perl libb-hooks-op-check-perl 428s libcc1-0 libclass-c3-perl libclass-data-inheritable-perl 428s libclass-inspector-perl libclass-method-modifiers-perl 428s libclass-singleton-perl libclass-tiny-perl libclass-xsaccessor-perl 428s libcpan-meta-check-perl libcpan-requirements-dynamic-perl 428s libcpanel-json-xs-perl libdata-optlist-perl libdata-validate-domain-perl 428s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 428s libdatetime-timezone-perl libdebhelper-perl libdevel-callchecker-perl 428s libdevel-cycle-perl libdevel-stacktrace-perl libdynaloader-functions-perl 428s libemail-address-xs-perl liberror-perl libeval-closure-perl 428s libexception-class-perl libexporter-tiny-perl libextutils-config-perl 428s libextutils-hascompiler-perl libextutils-helpers-perl 428s libextutils-installpaths-perl libfeature-compat-try-perl libfile-chdir-perl 428s libfile-copy-recursive-perl libfile-sharedir-perl 428s libfile-stripnondeterminism-perl libgcc-14-dev 428s libgetopt-long-descriptive-perl libgit-wrapper-perl libgomp1 428s libimport-into-perl libio-stringy-perl libisl23 libitm1 libjs-bootstrap5 428s libjs-highlight.js libjs-popper.js libjson-perl libjson-schema-modern-perl 428s liblsan0 libmodule-build-tiny-perl libmodule-implementation-perl 428s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 428s libmpc3 libmro-compat-perl libnamespace-autoclean-perl 428s libnamespace-clean-perl libnet-domain-tld-perl libnet-idn-encode-perl 428s libpackage-stash-perl libpadwalker-perl libparams-classify-perl 428s libparams-util-perl libparams-validate-perl 428s libparams-validationcompiler-perl libpath-tiny-perl libquadmath0 428s libref-util-perl libref-util-xs-perl librole-tiny-perl libsafe-isa-perl 428s libscope-guard-perl libsereal-decoder-perl libsereal-encoder-perl 428s libsereal-perl libsort-versions-perl libspecio-perl libstdc++-14-dev 428s libstrictures-perl libsub-exporter-perl libsub-exporter-progressive-perl 428s libsub-identify-perl libsub-install-perl libsub-name-perl libsub-quote-perl 428s libsyntax-keyword-try-perl libtest-deep-perl 428s libtest-deep-unorderedpairs-perl libtest-fatal-perl 428s libtest-file-sharedir-perl libtest-json-schema-acceptance-perl 428s libtest-memory-cycle-perl libtest-needs-perl libtest-warnings-perl 428s libtest-without-module-perl libtest2-suite-perl libtime-moment-perl libtool 428s libtry-tiny-perl libtsan2 libtype-tiny-perl libtype-tiny-xs-perl libubsan1 428s libvariable-magic-perl libxs-parse-keyword-perl libxstring-perl m4 428s pkg-perl-autopkgtest po-debconf 428s 0 upgraded, 148 newly installed, 0 to remove and 0 not upgraded. 428s Need to get 78.8 MB/78.8 MB of archives. 428s After this operation, 312 MB of additional disk space will be used. 428s Get:1 /tmp/autopkgtest.KTsMu3/1-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [1192 B] 428s Get:2 http://ftpmaster.internal/ubuntu plucky/main ppc64el m4 ppc64el 1.4.19-4build1 [278 kB] 428s Get:3 http://ftpmaster.internal/ubuntu plucky/main ppc64el autoconf all 2.72-3 [382 kB] 428s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el dctrl-tools ppc64el 2.24-3build3 [109 kB] 428s Get:5 http://ftpmaster.internal/ubuntu plucky/main ppc64el autodep8 all 0.28+nmu1ubuntu1 [13.7 kB] 428s Get:6 http://ftpmaster.internal/ubuntu plucky/main ppc64el autotools-dev all 20220109.1 [44.9 kB] 428s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el automake all 1:1.16.5-1.3ubuntu1 [558 kB] 428s Get:8 http://ftpmaster.internal/ubuntu plucky/main ppc64el autopoint all 0.22.5-2 [616 kB] 429s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el libisl23 ppc64el 0.27-1 [882 kB] 429s Get:10 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmpc3 ppc64el 1.3.1-1build2 [62.1 kB] 429s Get:11 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [10.5 MB] 430s Get:12 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-14 ppc64el 14.2.0-8ubuntu1 [1034 B] 430s Get:13 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [5456 B] 430s Get:14 http://ftpmaster.internal/ubuntu plucky/main ppc64el cpp ppc64el 4:14.1.0-2ubuntu1 [22.5 kB] 430s Get:15 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcc1-0 ppc64el 14.2.0-8ubuntu1 [48.1 kB] 430s Get:16 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgomp1 ppc64el 14.2.0-8ubuntu1 [161 kB] 430s Get:17 http://ftpmaster.internal/ubuntu plucky/main ppc64el libitm1 ppc64el 14.2.0-8ubuntu1 [31.9 kB] 430s Get:18 http://ftpmaster.internal/ubuntu plucky/main ppc64el libasan8 ppc64el 14.2.0-8ubuntu1 [2945 kB] 430s Get:19 http://ftpmaster.internal/ubuntu plucky/main ppc64el liblsan0 ppc64el 14.2.0-8ubuntu1 [1322 kB] 430s Get:20 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtsan2 ppc64el 14.2.0-8ubuntu1 [2695 kB] 430s Get:21 http://ftpmaster.internal/ubuntu plucky/main ppc64el libubsan1 ppc64el 14.2.0-8ubuntu1 [1191 kB] 430s Get:22 http://ftpmaster.internal/ubuntu plucky/main ppc64el libquadmath0 ppc64el 14.2.0-8ubuntu1 [158 kB] 430s Get:23 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgcc-14-dev ppc64el 14.2.0-8ubuntu1 [1619 kB] 431s Get:24 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [20.6 MB] 431s Get:25 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-14 ppc64el 14.2.0-8ubuntu1 [528 kB] 431s Get:26 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [1222 B] 431s Get:27 http://ftpmaster.internal/ubuntu plucky/main ppc64el gcc ppc64el 4:14.1.0-2ubuntu1 [5006 B] 431s Get:28 http://ftpmaster.internal/ubuntu plucky/main ppc64el libstdc++-14-dev ppc64el 14.2.0-8ubuntu1 [2673 kB] 431s Get:29 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-14-powerpc64le-linux-gnu ppc64el 14.2.0-8ubuntu1 [12.0 MB] 432s Get:30 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-14 ppc64el 14.2.0-8ubuntu1 [19.9 kB] 432s Get:31 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++-powerpc64le-linux-gnu ppc64el 4:14.1.0-2ubuntu1 [968 B] 432s Get:32 http://ftpmaster.internal/ubuntu plucky/main ppc64el g++ ppc64el 4:14.1.0-2ubuntu1 [1090 B] 432s Get:33 http://ftpmaster.internal/ubuntu plucky/main ppc64el build-essential ppc64el 12.10ubuntu1 [4936 B] 432s Get:34 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdebhelper-perl all 13.20ubuntu1 [94.2 kB] 432s Get:35 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtool all 2.4.7-7build1 [166 kB] 432s Get:36 http://ftpmaster.internal/ubuntu plucky/main ppc64el dh-autoreconf all 20 [16.1 kB] 432s Get:37 http://ftpmaster.internal/ubuntu plucky/main ppc64el libarchive-zip-perl all 1.68-1 [90.2 kB] 432s Get:38 http://ftpmaster.internal/ubuntu plucky/main ppc64el libfile-stripnondeterminism-perl all 1.14.0-1 [20.1 kB] 432s Get:39 http://ftpmaster.internal/ubuntu plucky/main ppc64el dh-strip-nondeterminism all 1.14.0-1 [5058 B] 432s Get:40 http://ftpmaster.internal/ubuntu plucky/main ppc64el debugedit ppc64el 1:5.1-1 [52.1 kB] 432s Get:41 http://ftpmaster.internal/ubuntu plucky/main ppc64el dwz ppc64el 0.15-1build6 [142 kB] 432s Get:42 http://ftpmaster.internal/ubuntu plucky/main ppc64el gettext ppc64el 0.22.5-2 [1082 kB] 432s Get:43 http://ftpmaster.internal/ubuntu plucky/main ppc64el intltool-debian all 0.35.0+20060710.6 [23.2 kB] 432s Get:44 http://ftpmaster.internal/ubuntu plucky/main ppc64el po-debconf all 1.0.21+nmu1 [233 kB] 432s Get:45 http://ftpmaster.internal/ubuntu plucky/main ppc64el debhelper all 13.20ubuntu1 [893 kB] 432s Get:46 http://ftpmaster.internal/ubuntu plucky/main ppc64el liberror-perl all 0.17029-2 [25.6 kB] 432s Get:47 http://ftpmaster.internal/ubuntu plucky/main ppc64el git-man all 1:2.45.2-1ubuntu1 [1122 kB] 432s Get:48 http://ftpmaster.internal/ubuntu plucky/main ppc64el git ppc64el 1:2.45.2-1ubuntu1 [7130 kB] 432s Get:49 http://ftpmaster.internal/ubuntu plucky/main ppc64el javascript-common all 11+nmu1 [5936 B] 432s Get:50 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libalgorithm-c3-perl all 0.11-2 [10.2 kB] 432s Get:51 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libautovivification-perl ppc64el 0.18-2build5 [23.7 kB] 432s Get:52 http://ftpmaster.internal/ubuntu plucky/main ppc64el libb-hooks-op-check-perl ppc64el 0.22-3build2 [9884 B] 432s Get:53 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdynaloader-functions-perl all 0.004-1 [11.4 kB] 432s Get:54 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdevel-callchecker-perl ppc64el 0.009-1build1 [14.1 kB] 432s Get:55 http://ftpmaster.internal/ubuntu plucky/main ppc64el libparams-classify-perl ppc64el 0.015-2build6 [22.2 kB] 432s Get:56 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmodule-runtime-perl all 0.016-2 [16.4 kB] 432s Get:57 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtry-tiny-perl all 0.32-1 [21.2 kB] 432s Get:58 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmodule-implementation-perl all 0.09-2 [12.0 kB] 432s Get:59 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 432s Get:60 http://ftpmaster.internal/ubuntu plucky/main ppc64el libvariable-magic-perl ppc64el 0.64-1build1 [37.2 kB] 432s Get:61 http://ftpmaster.internal/ubuntu plucky/main ppc64el libb-hooks-endofscope-perl all 0.28-1 [15.8 kB] 432s Get:62 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libclass-c3-perl all 0.35-2 [18.4 kB] 432s Get:63 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-data-inheritable-perl all 0.10-1 [8038 B] 432s Get:64 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-inspector-perl all 1.36-3 [15.4 kB] 432s Get:65 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 432s Get:66 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libclass-singleton-perl all 1.6-2 [11.5 kB] 432s Get:67 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libclass-tiny-perl all 1.008-2 [16.4 kB] 432s Get:68 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-xsaccessor-perl ppc64el 1.19-4build5 [35.1 kB] 432s Get:69 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libcpan-meta-check-perl all 0.018-1 [6090 B] 432s Get:70 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libextutils-config-perl all 0.010-1 [7806 B] 432s Get:71 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libextutils-hascompiler-perl all 0.025-1 [7738 B] 432s Get:72 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libcpan-requirements-dynamic-perl all 0.001-2 [8206 B] 432s Get:73 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcpanel-json-xs-perl ppc64el 4.38-1build1 [119 kB] 432s Get:74 http://ftpmaster.internal/ubuntu plucky/main ppc64el libparams-util-perl ppc64el 1.102-3build1 [21.3 kB] 432s Get:75 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-install-perl all 0.929-1 [9764 B] 432s Get:76 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdata-optlist-perl all 0.114-1 [9708 B] 432s Get:77 http://ftpmaster.internal/ubuntu plucky/main ppc64el libnet-domain-tld-perl all 1.75-4 [29.0 kB] 432s Get:78 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdata-validate-domain-perl all 0.15-1 [10.4 kB] 432s Get:79 http://ftpmaster.internal/ubuntu plucky/main ppc64el libfile-sharedir-perl all 1.118-3 [14.0 kB] 432s Get:80 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpackage-stash-perl all 0.40-1 [19.5 kB] 432s Get:81 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-identify-perl ppc64el 0.14-3build4 [10.1 kB] 432s Get:82 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-name-perl ppc64el 0.27-1build4 [11.0 kB] 432s Get:83 http://ftpmaster.internal/ubuntu plucky/main ppc64el libnamespace-clean-perl all 0.27-2 [14.0 kB] 432s Get:84 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 432s Get:85 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-exporter-perl all 0.990-1 [49.0 kB] 432s Get:86 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libeval-closure-perl all 0.14-3 [10.1 kB] 432s Get:87 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 432s Get:88 http://ftpmaster.internal/ubuntu plucky/main ppc64el libexception-class-perl all 1.45-1 [28.6 kB] 432s Get:89 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 432s Get:90 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmro-compat-perl all 0.15-2 [10.1 kB] 432s Get:91 http://ftpmaster.internal/ubuntu plucky/main ppc64el librole-tiny-perl all 2.002004-1 [16.3 kB] 432s Get:92 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 432s Get:93 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libxstring-perl ppc64el 0.005-2build4 [8448 B] 432s Get:94 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libspecio-perl all 0.48-1 [137 kB] 432s Get:95 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-locale-perl all 1:1.41-1 [3193 kB] 432s Get:96 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-timezone-perl all 1:2.63-2+2024b [259 kB] 432s Get:97 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-perl ppc64el 2:1.65-1build3 [96.9 kB] 432s Get:98 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-format-rfc3339-perl all 1.8.0-1 [8156 B] 432s Get:99 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdevel-cycle-perl all 1.12-2 [10.1 kB] 432s Get:100 http://ftpmaster.internal/ubuntu plucky/main ppc64el libemail-address-xs-perl ppc64el 1.05-1build5 [33.6 kB] 432s Get:101 http://ftpmaster.internal/ubuntu plucky/main ppc64el libexporter-tiny-perl all 1.006002-1 [36.8 kB] 432s Get:102 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libextutils-helpers-perl all 0.028-1 [10.8 kB] 433s Get:103 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libextutils-installpaths-perl all 0.014-1 [13.2 kB] 433s Get:104 http://ftpmaster.internal/ubuntu plucky/main ppc64el libxs-parse-keyword-perl ppc64el 0.46-1 [63.8 kB] 433s Get:105 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsyntax-keyword-try-perl ppc64el 0.30-1 [26.3 kB] 433s Get:106 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libfeature-compat-try-perl all 0.05-1 [9998 B] 433s Get:107 http://ftpmaster.internal/ubuntu plucky/main ppc64el libfile-chdir-perl all 0.1008-1.2 [10.4 kB] 433s Get:108 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libfile-copy-recursive-perl all 0.45-4 [16.5 kB] 433s Get:109 http://ftpmaster.internal/ubuntu plucky/main ppc64el libio-stringy-perl all 2.113-2 [45.3 kB] 433s Get:110 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libparams-validate-perl ppc64el 1.31-2build4 [55.4 kB] 433s Get:111 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el libgetopt-long-descriptive-perl all 0.115-1 [24.9 kB] 433s Get:112 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsort-versions-perl all 1.62-3 [7378 B] 433s Get:113 http://ftpmaster.internal/ubuntu plucky/main ppc64el libgit-wrapper-perl all 0.048-2 [29.5 kB] 433s Get:114 http://ftpmaster.internal/ubuntu plucky/main ppc64el libimport-into-perl all 1.002005-2 [10.7 kB] 433s Get:115 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 433s Get:116 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-bootstrap5 all 5.3.3+dfsg-1 [309 kB] 433s Get:117 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 433s Get:118 http://ftpmaster.internal/ubuntu plucky/main ppc64el libjson-perl all 4.10000-1 [81.9 kB] 433s Get:119 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmojolicious-perl all 9.38+dfsg-1 [760 kB] 433s Get:120 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmoo-perl all 2.005005-1 [47.4 kB] 433s Get:121 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtype-tiny-perl all 2.004000-1 [354 kB] 433s Get:122 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmoox-typetiny-perl all 0.002003-4 [5930 B] 433s Get:123 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpath-tiny-perl all 0.146-1 [47.5 kB] 433s Get:124 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libref-util-perl all 0.204-2 [15.1 kB] 433s Get:125 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libsafe-isa-perl all 1.000010-1 [7684 B] 433s Get:126 http://ftpmaster.internal/ubuntu plucky/main ppc64el libstrictures-perl all 2.000006-1 [16.3 kB] 433s Get:127 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjson-schema-modern-perl all 0.593-1 [100 kB] 433s Get:128 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmodule-build-tiny-perl all 0.048-1 [9710 B] 433s Get:129 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libnet-idn-encode-perl ppc64el 2.500-5build1 [85.1 kB] 433s Get:130 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libpadwalker-perl ppc64el 2.5-1build7 [16.4 kB] 433s Get:131 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libref-util-xs-perl ppc64el 0.117-2build5 [13.8 kB] 433s Get:132 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libscope-guard-perl all 0.21-2 [7730 B] 433s Get:133 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsereal-decoder-perl ppc64el 5.004+ds-1build4 [126 kB] 433s Get:134 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsereal-encoder-perl ppc64el 5.004+ds-1build4 [120 kB] 433s Get:135 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libsereal-perl all 5.004-1 [8770 B] 433s Get:136 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-deep-perl all 1.204-1 [47.1 kB] 433s Get:137 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-deep-unorderedpairs-perl all 0.006-3 [9052 B] 433s Get:138 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-fatal-perl all 0.017-1 [12.2 kB] 433s Get:139 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-file-sharedir-perl all 1.001002-2 [26.3 kB] 433s Get:140 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest2-suite-perl all 0.000163-1 [377 kB] 433s Get:141 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-json-schema-acceptance-perl all 1.026-1 [89.6 kB] 433s Get:142 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-memory-cycle-perl all 1.06-2 [11.0 kB] 433s Get:143 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-needs-perl all 0.002010-1 [8530 B] 433s Get:144 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-warnings-perl all 0.033-1 [18.9 kB] 433s Get:145 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtest-without-module-perl all 0.23-1 [9732 B] 433s Get:146 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtime-moment-perl ppc64el 0.44-2build5 [76.5 kB] 433s Get:147 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtype-tiny-xs-perl ppc64el 0.025-2build1 [27.3 kB] 433s Get:148 http://ftpmaster.internal/ubuntu plucky/universe ppc64el pkg-perl-autopkgtest all 0.80 [18.7 kB] 434s Fetched 78.8 MB in 6s (13.7 MB/s) 434s Selecting previously unselected package m4. 434s (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 ... 73808 files and directories currently installed.) 434s Preparing to unpack .../000-m4_1.4.19-4build1_ppc64el.deb ... 434s Unpacking m4 (1.4.19-4build1) ... 434s Selecting previously unselected package autoconf. 434s Preparing to unpack .../001-autoconf_2.72-3_all.deb ... 434s Unpacking autoconf (2.72-3) ... 434s Selecting previously unselected package dctrl-tools. 434s Preparing to unpack .../002-dctrl-tools_2.24-3build3_ppc64el.deb ... 434s Unpacking dctrl-tools (2.24-3build3) ... 434s Selecting previously unselected package autodep8. 434s Preparing to unpack .../003-autodep8_0.28+nmu1ubuntu1_all.deb ... 434s Unpacking autodep8 (0.28+nmu1ubuntu1) ... 434s Selecting previously unselected package autotools-dev. 434s Preparing to unpack .../004-autotools-dev_20220109.1_all.deb ... 434s Unpacking autotools-dev (20220109.1) ... 434s Selecting previously unselected package automake. 434s Preparing to unpack .../005-automake_1%3a1.16.5-1.3ubuntu1_all.deb ... 434s Unpacking automake (1:1.16.5-1.3ubuntu1) ... 434s Selecting previously unselected package autopoint. 434s Preparing to unpack .../006-autopoint_0.22.5-2_all.deb ... 434s Unpacking autopoint (0.22.5-2) ... 434s Selecting previously unselected package libisl23:ppc64el. 434s Preparing to unpack .../007-libisl23_0.27-1_ppc64el.deb ... 434s Unpacking libisl23:ppc64el (0.27-1) ... 435s Selecting previously unselected package libmpc3:ppc64el. 435s Preparing to unpack .../008-libmpc3_1.3.1-1build2_ppc64el.deb ... 435s Unpacking libmpc3:ppc64el (1.3.1-1build2) ... 435s Selecting previously unselected package cpp-14-powerpc64le-linux-gnu. 435s Preparing to unpack .../009-cpp-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking cpp-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package cpp-14. 435s Preparing to unpack .../010-cpp-14_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking cpp-14 (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package cpp-powerpc64le-linux-gnu. 435s Preparing to unpack .../011-cpp-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 435s Unpacking cpp-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 435s Selecting previously unselected package cpp. 435s Preparing to unpack .../012-cpp_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 435s Unpacking cpp (4:14.1.0-2ubuntu1) ... 435s Selecting previously unselected package libcc1-0:ppc64el. 435s Preparing to unpack .../013-libcc1-0_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libcc1-0:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libgomp1:ppc64el. 435s Preparing to unpack .../014-libgomp1_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libgomp1:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libitm1:ppc64el. 435s Preparing to unpack .../015-libitm1_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libitm1:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libasan8:ppc64el. 435s Preparing to unpack .../016-libasan8_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libasan8:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package liblsan0:ppc64el. 435s Preparing to unpack .../017-liblsan0_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking liblsan0:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libtsan2:ppc64el. 435s Preparing to unpack .../018-libtsan2_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libtsan2:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libubsan1:ppc64el. 435s Preparing to unpack .../019-libubsan1_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libubsan1:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libquadmath0:ppc64el. 435s Preparing to unpack .../020-libquadmath0_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libquadmath0:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package libgcc-14-dev:ppc64el. 435s Preparing to unpack .../021-libgcc-14-dev_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libgcc-14-dev:ppc64el (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package gcc-14-powerpc64le-linux-gnu. 435s Preparing to unpack .../022-gcc-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking gcc-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package gcc-14. 435s Preparing to unpack .../023-gcc-14_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking gcc-14 (14.2.0-8ubuntu1) ... 435s Selecting previously unselected package gcc-powerpc64le-linux-gnu. 435s Preparing to unpack .../024-gcc-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 435s Unpacking gcc-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 435s Selecting previously unselected package gcc. 435s Preparing to unpack .../025-gcc_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 435s Unpacking gcc (4:14.1.0-2ubuntu1) ... 435s Selecting previously unselected package libstdc++-14-dev:ppc64el. 435s Preparing to unpack .../026-libstdc++-14-dev_14.2.0-8ubuntu1_ppc64el.deb ... 435s Unpacking libstdc++-14-dev:ppc64el (14.2.0-8ubuntu1) ... 436s Selecting previously unselected package g++-14-powerpc64le-linux-gnu. 436s Preparing to unpack .../027-g++-14-powerpc64le-linux-gnu_14.2.0-8ubuntu1_ppc64el.deb ... 436s Unpacking g++-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 436s Selecting previously unselected package g++-14. 436s Preparing to unpack .../028-g++-14_14.2.0-8ubuntu1_ppc64el.deb ... 436s Unpacking g++-14 (14.2.0-8ubuntu1) ... 436s Selecting previously unselected package g++-powerpc64le-linux-gnu. 436s Preparing to unpack .../029-g++-powerpc64le-linux-gnu_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 436s Unpacking g++-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 436s Selecting previously unselected package g++. 436s Preparing to unpack .../030-g++_4%3a14.1.0-2ubuntu1_ppc64el.deb ... 436s Unpacking g++ (4:14.1.0-2ubuntu1) ... 436s Selecting previously unselected package build-essential. 436s Preparing to unpack .../031-build-essential_12.10ubuntu1_ppc64el.deb ... 436s Unpacking build-essential (12.10ubuntu1) ... 436s Selecting previously unselected package libdebhelper-perl. 436s Preparing to unpack .../032-libdebhelper-perl_13.20ubuntu1_all.deb ... 436s Unpacking libdebhelper-perl (13.20ubuntu1) ... 436s Selecting previously unselected package libtool. 436s Preparing to unpack .../033-libtool_2.4.7-7build1_all.deb ... 436s Unpacking libtool (2.4.7-7build1) ... 436s Selecting previously unselected package dh-autoreconf. 436s Preparing to unpack .../034-dh-autoreconf_20_all.deb ... 436s Unpacking dh-autoreconf (20) ... 436s Selecting previously unselected package libarchive-zip-perl. 436s Preparing to unpack .../035-libarchive-zip-perl_1.68-1_all.deb ... 436s Unpacking libarchive-zip-perl (1.68-1) ... 436s Selecting previously unselected package libfile-stripnondeterminism-perl. 436s Preparing to unpack .../036-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... 436s Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... 436s Selecting previously unselected package dh-strip-nondeterminism. 436s Preparing to unpack .../037-dh-strip-nondeterminism_1.14.0-1_all.deb ... 436s Unpacking dh-strip-nondeterminism (1.14.0-1) ... 436s Selecting previously unselected package debugedit. 436s Preparing to unpack .../038-debugedit_1%3a5.1-1_ppc64el.deb ... 436s Unpacking debugedit (1:5.1-1) ... 436s Selecting previously unselected package dwz. 436s Preparing to unpack .../039-dwz_0.15-1build6_ppc64el.deb ... 436s Unpacking dwz (0.15-1build6) ... 436s Selecting previously unselected package gettext. 436s Preparing to unpack .../040-gettext_0.22.5-2_ppc64el.deb ... 436s Unpacking gettext (0.22.5-2) ... 436s Selecting previously unselected package intltool-debian. 436s Preparing to unpack .../041-intltool-debian_0.35.0+20060710.6_all.deb ... 436s Unpacking intltool-debian (0.35.0+20060710.6) ... 436s Selecting previously unselected package po-debconf. 436s Preparing to unpack .../042-po-debconf_1.0.21+nmu1_all.deb ... 436s Unpacking po-debconf (1.0.21+nmu1) ... 436s Selecting previously unselected package debhelper. 436s Preparing to unpack .../043-debhelper_13.20ubuntu1_all.deb ... 436s Unpacking debhelper (13.20ubuntu1) ... 436s Selecting previously unselected package liberror-perl. 436s Preparing to unpack .../044-liberror-perl_0.17029-2_all.deb ... 436s Unpacking liberror-perl (0.17029-2) ... 436s Selecting previously unselected package git-man. 436s Preparing to unpack .../045-git-man_1%3a2.45.2-1ubuntu1_all.deb ... 436s Unpacking git-man (1:2.45.2-1ubuntu1) ... 436s Selecting previously unselected package git. 436s Preparing to unpack .../046-git_1%3a2.45.2-1ubuntu1_ppc64el.deb ... 436s Unpacking git (1:2.45.2-1ubuntu1) ... 437s Selecting previously unselected package javascript-common. 437s Preparing to unpack .../047-javascript-common_11+nmu1_all.deb ... 437s Unpacking javascript-common (11+nmu1) ... 437s Selecting previously unselected package libalgorithm-c3-perl. 437s Preparing to unpack .../048-libalgorithm-c3-perl_0.11-2_all.deb ... 437s Unpacking libalgorithm-c3-perl (0.11-2) ... 437s Selecting previously unselected package libautovivification-perl:ppc64el. 437s Preparing to unpack .../049-libautovivification-perl_0.18-2build5_ppc64el.deb ... 437s Unpacking libautovivification-perl:ppc64el (0.18-2build5) ... 437s Selecting previously unselected package libb-hooks-op-check-perl:ppc64el. 437s Preparing to unpack .../050-libb-hooks-op-check-perl_0.22-3build2_ppc64el.deb ... 437s Unpacking libb-hooks-op-check-perl:ppc64el (0.22-3build2) ... 437s Selecting previously unselected package libdynaloader-functions-perl. 437s Preparing to unpack .../051-libdynaloader-functions-perl_0.004-1_all.deb ... 437s Unpacking libdynaloader-functions-perl (0.004-1) ... 437s Selecting previously unselected package libdevel-callchecker-perl:ppc64el. 437s Preparing to unpack .../052-libdevel-callchecker-perl_0.009-1build1_ppc64el.deb ... 437s Unpacking libdevel-callchecker-perl:ppc64el (0.009-1build1) ... 437s Selecting previously unselected package libparams-classify-perl:ppc64el. 437s Preparing to unpack .../053-libparams-classify-perl_0.015-2build6_ppc64el.deb ... 437s Unpacking libparams-classify-perl:ppc64el (0.015-2build6) ... 437s Selecting previously unselected package libmodule-runtime-perl. 437s Preparing to unpack .../054-libmodule-runtime-perl_0.016-2_all.deb ... 437s Unpacking libmodule-runtime-perl (0.016-2) ... 437s Selecting previously unselected package libtry-tiny-perl. 437s Preparing to unpack .../055-libtry-tiny-perl_0.32-1_all.deb ... 437s Unpacking libtry-tiny-perl (0.32-1) ... 437s Selecting previously unselected package libmodule-implementation-perl. 437s Preparing to unpack .../056-libmodule-implementation-perl_0.09-2_all.deb ... 437s Unpacking libmodule-implementation-perl (0.09-2) ... 437s Selecting previously unselected package libsub-exporter-progressive-perl. 437s Preparing to unpack .../057-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 437s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 437s Selecting previously unselected package libvariable-magic-perl. 437s Preparing to unpack .../058-libvariable-magic-perl_0.64-1build1_ppc64el.deb ... 437s Unpacking libvariable-magic-perl (0.64-1build1) ... 437s Selecting previously unselected package libb-hooks-endofscope-perl. 437s Preparing to unpack .../059-libb-hooks-endofscope-perl_0.28-1_all.deb ... 437s Unpacking libb-hooks-endofscope-perl (0.28-1) ... 437s Selecting previously unselected package libclass-c3-perl. 437s Preparing to unpack .../060-libclass-c3-perl_0.35-2_all.deb ... 437s Unpacking libclass-c3-perl (0.35-2) ... 437s Selecting previously unselected package libclass-data-inheritable-perl. 437s Preparing to unpack .../061-libclass-data-inheritable-perl_0.10-1_all.deb ... 437s Unpacking libclass-data-inheritable-perl (0.10-1) ... 437s Selecting previously unselected package libclass-inspector-perl. 437s Preparing to unpack .../062-libclass-inspector-perl_1.36-3_all.deb ... 437s Unpacking libclass-inspector-perl (1.36-3) ... 437s Selecting previously unselected package libclass-method-modifiers-perl. 437s Preparing to unpack .../063-libclass-method-modifiers-perl_2.15-1_all.deb ... 437s Unpacking libclass-method-modifiers-perl (2.15-1) ... 437s Selecting previously unselected package libclass-singleton-perl. 437s Preparing to unpack .../064-libclass-singleton-perl_1.6-2_all.deb ... 437s Unpacking libclass-singleton-perl (1.6-2) ... 437s Selecting previously unselected package libclass-tiny-perl. 437s Preparing to unpack .../065-libclass-tiny-perl_1.008-2_all.deb ... 437s Unpacking libclass-tiny-perl (1.008-2) ... 437s Selecting previously unselected package libclass-xsaccessor-perl. 437s Preparing to unpack .../066-libclass-xsaccessor-perl_1.19-4build5_ppc64el.deb ... 437s Unpacking libclass-xsaccessor-perl (1.19-4build5) ... 437s Selecting previously unselected package libcpan-meta-check-perl. 437s Preparing to unpack .../067-libcpan-meta-check-perl_0.018-1_all.deb ... 437s Unpacking libcpan-meta-check-perl (0.018-1) ... 437s Selecting previously unselected package libextutils-config-perl. 437s Preparing to unpack .../068-libextutils-config-perl_0.010-1_all.deb ... 437s Unpacking libextutils-config-perl (0.010-1) ... 437s Selecting previously unselected package libextutils-hascompiler-perl. 437s Preparing to unpack .../069-libextutils-hascompiler-perl_0.025-1_all.deb ... 437s Unpacking libextutils-hascompiler-perl (0.025-1) ... 437s Selecting previously unselected package libcpan-requirements-dynamic-perl. 437s Preparing to unpack .../070-libcpan-requirements-dynamic-perl_0.001-2_all.deb ... 437s Unpacking libcpan-requirements-dynamic-perl (0.001-2) ... 437s Selecting previously unselected package libcpanel-json-xs-perl:ppc64el. 437s Preparing to unpack .../071-libcpanel-json-xs-perl_4.38-1build1_ppc64el.deb ... 437s Unpacking libcpanel-json-xs-perl:ppc64el (4.38-1build1) ... 437s Selecting previously unselected package libparams-util-perl. 437s Preparing to unpack .../072-libparams-util-perl_1.102-3build1_ppc64el.deb ... 437s Unpacking libparams-util-perl (1.102-3build1) ... 437s Selecting previously unselected package libsub-install-perl. 437s Preparing to unpack .../073-libsub-install-perl_0.929-1_all.deb ... 437s Unpacking libsub-install-perl (0.929-1) ... 437s Selecting previously unselected package libdata-optlist-perl. 437s Preparing to unpack .../074-libdata-optlist-perl_0.114-1_all.deb ... 437s Unpacking libdata-optlist-perl (0.114-1) ... 437s Selecting previously unselected package libnet-domain-tld-perl. 437s Preparing to unpack .../075-libnet-domain-tld-perl_1.75-4_all.deb ... 437s Unpacking libnet-domain-tld-perl (1.75-4) ... 437s Selecting previously unselected package libdata-validate-domain-perl. 437s Preparing to unpack .../076-libdata-validate-domain-perl_0.15-1_all.deb ... 437s Unpacking libdata-validate-domain-perl (0.15-1) ... 437s Selecting previously unselected package libfile-sharedir-perl. 437s Preparing to unpack .../077-libfile-sharedir-perl_1.118-3_all.deb ... 437s Unpacking libfile-sharedir-perl (1.118-3) ... 437s Selecting previously unselected package libpackage-stash-perl. 437s Preparing to unpack .../078-libpackage-stash-perl_0.40-1_all.deb ... 437s Unpacking libpackage-stash-perl (0.40-1) ... 437s Selecting previously unselected package libsub-identify-perl. 437s Preparing to unpack .../079-libsub-identify-perl_0.14-3build4_ppc64el.deb ... 437s Unpacking libsub-identify-perl (0.14-3build4) ... 437s Selecting previously unselected package libsub-name-perl:ppc64el. 437s Preparing to unpack .../080-libsub-name-perl_0.27-1build4_ppc64el.deb ... 437s Unpacking libsub-name-perl:ppc64el (0.27-1build4) ... 437s Selecting previously unselected package libnamespace-clean-perl. 437s Preparing to unpack .../081-libnamespace-clean-perl_0.27-2_all.deb ... 437s Unpacking libnamespace-clean-perl (0.27-2) ... 437s Selecting previously unselected package libnamespace-autoclean-perl. 437s Preparing to unpack .../082-libnamespace-autoclean-perl_0.31-1_all.deb ... 437s Unpacking libnamespace-autoclean-perl (0.31-1) ... 437s Selecting previously unselected package libsub-exporter-perl. 437s Preparing to unpack .../083-libsub-exporter-perl_0.990-1_all.deb ... 437s Unpacking libsub-exporter-perl (0.990-1) ... 437s Selecting previously unselected package libeval-closure-perl. 437s Preparing to unpack .../084-libeval-closure-perl_0.14-3_all.deb ... 437s Unpacking libeval-closure-perl (0.14-3) ... 437s Selecting previously unselected package libdevel-stacktrace-perl. 437s Preparing to unpack .../085-libdevel-stacktrace-perl_2.0500-1_all.deb ... 437s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 437s Selecting previously unselected package libexception-class-perl. 437s Preparing to unpack .../086-libexception-class-perl_1.45-1_all.deb ... 437s Unpacking libexception-class-perl (1.45-1) ... 437s Selecting previously unselected package libparams-validationcompiler-perl. 437s Preparing to unpack .../087-libparams-validationcompiler-perl_0.31-1_all.deb ... 437s Unpacking libparams-validationcompiler-perl (0.31-1) ... 437s Selecting previously unselected package libmro-compat-perl. 437s Preparing to unpack .../088-libmro-compat-perl_0.15-2_all.deb ... 437s Unpacking libmro-compat-perl (0.15-2) ... 437s Selecting previously unselected package librole-tiny-perl. 437s Preparing to unpack .../089-librole-tiny-perl_2.002004-1_all.deb ... 437s Unpacking librole-tiny-perl (2.002004-1) ... 437s Selecting previously unselected package libsub-quote-perl. 437s Preparing to unpack .../090-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 437s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 437s Selecting previously unselected package libxstring-perl:ppc64el. 437s Preparing to unpack .../091-libxstring-perl_0.005-2build4_ppc64el.deb ... 437s Unpacking libxstring-perl:ppc64el (0.005-2build4) ... 437s Selecting previously unselected package libspecio-perl. 437s Preparing to unpack .../092-libspecio-perl_0.48-1_all.deb ... 437s Unpacking libspecio-perl (0.48-1) ... 437s Selecting previously unselected package libdatetime-locale-perl. 437s Preparing to unpack .../093-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 437s Unpacking libdatetime-locale-perl (1:1.41-1) ... 438s Selecting previously unselected package libdatetime-timezone-perl. 438s Preparing to unpack .../094-libdatetime-timezone-perl_1%3a2.63-2+2024b_all.deb ... 438s Unpacking libdatetime-timezone-perl (1:2.63-2+2024b) ... 438s Selecting previously unselected package libdatetime-perl. 438s Preparing to unpack .../095-libdatetime-perl_2%3a1.65-1build3_ppc64el.deb ... 438s Unpacking libdatetime-perl (2:1.65-1build3) ... 438s Selecting previously unselected package libdatetime-format-rfc3339-perl. 438s Preparing to unpack .../096-libdatetime-format-rfc3339-perl_1.8.0-1_all.deb ... 438s Unpacking libdatetime-format-rfc3339-perl (1.8.0-1) ... 438s Selecting previously unselected package libdevel-cycle-perl. 438s Preparing to unpack .../097-libdevel-cycle-perl_1.12-2_all.deb ... 438s Unpacking libdevel-cycle-perl (1.12-2) ... 438s Selecting previously unselected package libemail-address-xs-perl. 438s Preparing to unpack .../098-libemail-address-xs-perl_1.05-1build5_ppc64el.deb ... 438s Unpacking libemail-address-xs-perl (1.05-1build5) ... 438s Selecting previously unselected package libexporter-tiny-perl. 438s Preparing to unpack .../099-libexporter-tiny-perl_1.006002-1_all.deb ... 438s Unpacking libexporter-tiny-perl (1.006002-1) ... 438s Selecting previously unselected package libextutils-helpers-perl. 438s Preparing to unpack .../100-libextutils-helpers-perl_0.028-1_all.deb ... 438s Unpacking libextutils-helpers-perl (0.028-1) ... 438s Selecting previously unselected package libextutils-installpaths-perl. 438s Preparing to unpack .../101-libextutils-installpaths-perl_0.014-1_all.deb ... 438s Unpacking libextutils-installpaths-perl (0.014-1) ... 438s Selecting previously unselected package libxs-parse-keyword-perl. 438s Preparing to unpack .../102-libxs-parse-keyword-perl_0.46-1_ppc64el.deb ... 438s Unpacking libxs-parse-keyword-perl (0.46-1) ... 438s Selecting previously unselected package libsyntax-keyword-try-perl. 438s Preparing to unpack .../103-libsyntax-keyword-try-perl_0.30-1_ppc64el.deb ... 438s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 438s Selecting previously unselected package libfeature-compat-try-perl. 438s Preparing to unpack .../104-libfeature-compat-try-perl_0.05-1_all.deb ... 438s Unpacking libfeature-compat-try-perl (0.05-1) ... 438s Selecting previously unselected package libfile-chdir-perl. 438s Preparing to unpack .../105-libfile-chdir-perl_0.1008-1.2_all.deb ... 438s Unpacking libfile-chdir-perl (0.1008-1.2) ... 438s Selecting previously unselected package libfile-copy-recursive-perl. 438s Preparing to unpack .../106-libfile-copy-recursive-perl_0.45-4_all.deb ... 438s Unpacking libfile-copy-recursive-perl (0.45-4) ... 438s Selecting previously unselected package libio-stringy-perl. 438s Preparing to unpack .../107-libio-stringy-perl_2.113-2_all.deb ... 438s Unpacking libio-stringy-perl (2.113-2) ... 438s Selecting previously unselected package libparams-validate-perl:ppc64el. 438s Preparing to unpack .../108-libparams-validate-perl_1.31-2build4_ppc64el.deb ... 438s Unpacking libparams-validate-perl:ppc64el (1.31-2build4) ... 438s Selecting previously unselected package libgetopt-long-descriptive-perl. 438s Preparing to unpack .../109-libgetopt-long-descriptive-perl_0.115-1_all.deb ... 438s Unpacking libgetopt-long-descriptive-perl (0.115-1) ... 438s Selecting previously unselected package libsort-versions-perl. 438s Preparing to unpack .../110-libsort-versions-perl_1.62-3_all.deb ... 438s Unpacking libsort-versions-perl (1.62-3) ... 438s Selecting previously unselected package libgit-wrapper-perl. 438s Preparing to unpack .../111-libgit-wrapper-perl_0.048-2_all.deb ... 438s Unpacking libgit-wrapper-perl (0.048-2) ... 438s Selecting previously unselected package libimport-into-perl. 438s Preparing to unpack .../112-libimport-into-perl_1.002005-2_all.deb ... 438s Unpacking libimport-into-perl (1.002005-2) ... 438s Selecting previously unselected package libjs-popper.js. 438s Preparing to unpack .../113-libjs-popper.js_1.16.1+ds-6_all.deb ... 438s Unpacking libjs-popper.js (1.16.1+ds-6) ... 438s Selecting previously unselected package libjs-bootstrap5. 438s Preparing to unpack .../114-libjs-bootstrap5_5.3.3+dfsg-1_all.deb ... 438s Unpacking libjs-bootstrap5 (5.3.3+dfsg-1) ... 438s Selecting previously unselected package libjs-highlight.js. 438s Preparing to unpack .../115-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 438s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 438s Selecting previously unselected package libjson-perl. 438s Preparing to unpack .../116-libjson-perl_4.10000-1_all.deb ... 438s Unpacking libjson-perl (4.10000-1) ... 438s Selecting previously unselected package libmojolicious-perl. 438s Preparing to unpack .../117-libmojolicious-perl_9.38+dfsg-1_all.deb ... 438s Unpacking libmojolicious-perl (9.38+dfsg-1) ... 438s Selecting previously unselected package libmoo-perl. 438s Preparing to unpack .../118-libmoo-perl_2.005005-1_all.deb ... 438s Unpacking libmoo-perl (2.005005-1) ... 438s Selecting previously unselected package libtype-tiny-perl. 438s Preparing to unpack .../119-libtype-tiny-perl_2.004000-1_all.deb ... 438s Unpacking libtype-tiny-perl (2.004000-1) ... 438s Selecting previously unselected package libmoox-typetiny-perl. 438s Preparing to unpack .../120-libmoox-typetiny-perl_0.002003-4_all.deb ... 438s Unpacking libmoox-typetiny-perl (0.002003-4) ... 438s Selecting previously unselected package libpath-tiny-perl. 438s Preparing to unpack .../121-libpath-tiny-perl_0.146-1_all.deb ... 438s Unpacking libpath-tiny-perl (0.146-1) ... 438s Selecting previously unselected package libref-util-perl. 438s Preparing to unpack .../122-libref-util-perl_0.204-2_all.deb ... 438s Unpacking libref-util-perl (0.204-2) ... 438s Selecting previously unselected package libsafe-isa-perl. 438s Preparing to unpack .../123-libsafe-isa-perl_1.000010-1_all.deb ... 438s Unpacking libsafe-isa-perl (1.000010-1) ... 439s Selecting previously unselected package libstrictures-perl. 439s Preparing to unpack .../124-libstrictures-perl_2.000006-1_all.deb ... 439s Unpacking libstrictures-perl (2.000006-1) ... 439s Selecting previously unselected package libjson-schema-modern-perl. 439s Preparing to unpack .../125-libjson-schema-modern-perl_0.593-1_all.deb ... 439s Unpacking libjson-schema-modern-perl (0.593-1) ... 439s Selecting previously unselected package libmodule-build-tiny-perl. 439s Preparing to unpack .../126-libmodule-build-tiny-perl_0.048-1_all.deb ... 439s Unpacking libmodule-build-tiny-perl (0.048-1) ... 439s Selecting previously unselected package libnet-idn-encode-perl. 439s Preparing to unpack .../127-libnet-idn-encode-perl_2.500-5build1_ppc64el.deb ... 439s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 439s Selecting previously unselected package libpadwalker-perl. 439s Preparing to unpack .../128-libpadwalker-perl_2.5-1build7_ppc64el.deb ... 439s Unpacking libpadwalker-perl (2.5-1build7) ... 439s Selecting previously unselected package libref-util-xs-perl. 439s Preparing to unpack .../129-libref-util-xs-perl_0.117-2build5_ppc64el.deb ... 439s Unpacking libref-util-xs-perl (0.117-2build5) ... 439s Selecting previously unselected package libscope-guard-perl. 439s Preparing to unpack .../130-libscope-guard-perl_0.21-2_all.deb ... 439s Unpacking libscope-guard-perl (0.21-2) ... 439s Selecting previously unselected package libsereal-decoder-perl. 439s Preparing to unpack .../131-libsereal-decoder-perl_5.004+ds-1build4_ppc64el.deb ... 439s Unpacking libsereal-decoder-perl (5.004+ds-1build4) ... 439s Selecting previously unselected package libsereal-encoder-perl. 439s Preparing to unpack .../132-libsereal-encoder-perl_5.004+ds-1build4_ppc64el.deb ... 439s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 439s Selecting previously unselected package libsereal-perl. 439s Preparing to unpack .../133-libsereal-perl_5.004-1_all.deb ... 439s Unpacking libsereal-perl (5.004-1) ... 439s Selecting previously unselected package libtest-deep-perl. 439s Preparing to unpack .../134-libtest-deep-perl_1.204-1_all.deb ... 439s Unpacking libtest-deep-perl (1.204-1) ... 439s Selecting previously unselected package libtest-deep-unorderedpairs-perl. 439s Preparing to unpack .../135-libtest-deep-unorderedpairs-perl_0.006-3_all.deb ... 439s Unpacking libtest-deep-unorderedpairs-perl (0.006-3) ... 439s Selecting previously unselected package libtest-fatal-perl. 439s Preparing to unpack .../136-libtest-fatal-perl_0.017-1_all.deb ... 439s Unpacking libtest-fatal-perl (0.017-1) ... 439s Selecting previously unselected package libtest-file-sharedir-perl. 439s Preparing to unpack .../137-libtest-file-sharedir-perl_1.001002-2_all.deb ... 439s Unpacking libtest-file-sharedir-perl (1.001002-2) ... 439s Selecting previously unselected package libtest2-suite-perl. 439s Preparing to unpack .../138-libtest2-suite-perl_0.000163-1_all.deb ... 439s Unpacking libtest2-suite-perl (0.000163-1) ... 439s Selecting previously unselected package libtest-json-schema-acceptance-perl. 439s Preparing to unpack .../139-libtest-json-schema-acceptance-perl_1.026-1_all.deb ... 439s Unpacking libtest-json-schema-acceptance-perl (1.026-1) ... 439s Selecting previously unselected package libtest-memory-cycle-perl. 439s Preparing to unpack .../140-libtest-memory-cycle-perl_1.06-2_all.deb ... 439s Unpacking libtest-memory-cycle-perl (1.06-2) ... 439s Selecting previously unselected package libtest-needs-perl. 439s Preparing to unpack .../141-libtest-needs-perl_0.002010-1_all.deb ... 439s Unpacking libtest-needs-perl (0.002010-1) ... 439s Selecting previously unselected package libtest-warnings-perl. 439s Preparing to unpack .../142-libtest-warnings-perl_0.033-1_all.deb ... 439s Unpacking libtest-warnings-perl (0.033-1) ... 439s Selecting previously unselected package libtest-without-module-perl. 439s Preparing to unpack .../143-libtest-without-module-perl_0.23-1_all.deb ... 439s Unpacking libtest-without-module-perl (0.23-1) ... 439s Selecting previously unselected package libtime-moment-perl. 439s Preparing to unpack .../144-libtime-moment-perl_0.44-2build5_ppc64el.deb ... 439s Unpacking libtime-moment-perl (0.44-2build5) ... 439s Selecting previously unselected package libtype-tiny-xs-perl:ppc64el. 439s Preparing to unpack .../145-libtype-tiny-xs-perl_0.025-2build1_ppc64el.deb ... 439s Unpacking libtype-tiny-xs-perl:ppc64el (0.025-2build1) ... 439s Selecting previously unselected package pkg-perl-autopkgtest. 439s Preparing to unpack .../146-pkg-perl-autopkgtest_0.80_all.deb ... 439s Unpacking pkg-perl-autopkgtest (0.80) ... 439s Selecting previously unselected package autopkgtest-satdep. 439s Preparing to unpack .../147-1-autopkgtest-satdep.deb ... 439s Unpacking autopkgtest-satdep (0) ... 439s Setting up javascript-common (11+nmu1) ... 439s Setting up libdevel-cycle-perl (1.12-2) ... 439s Setting up libextutils-config-perl (0.010-1) ... 439s Setting up libsafe-isa-perl (1.000010-1) ... 439s Setting up libextutils-helpers-perl (0.028-1) ... 439s Setting up libclass-inspector-perl (1.36-3) ... 439s Setting up libtest-without-module-perl (0.23-1) ... 439s Setting up libdynaloader-functions-perl (0.004-1) ... 439s Setting up libtest-deep-perl (1.204-1) ... 439s Setting up libclass-method-modifiers-perl (2.15-1) ... 439s Setting up libref-util-xs-perl (0.117-2build5) ... 439s Setting up libjs-popper.js (1.16.1+ds-6) ... 439s Setting up libnet-idn-encode-perl (2.500-5build1) ... 439s Setting up libarchive-zip-perl (1.68-1) ... 439s Setting up libsub-identify-perl (0.14-3build4) ... 439s Setting up libcpanel-json-xs-perl:ppc64el (4.38-1build1) ... 439s Setting up libextutils-installpaths-perl (0.014-1) ... 439s Setting up libio-stringy-perl (2.113-2) ... 439s Setting up libdebhelper-perl (13.20ubuntu1) ... 439s Setting up libtry-tiny-perl (0.32-1) ... 439s Setting up libtest-warnings-perl (0.033-1) ... 439s Setting up libtest-fatal-perl (0.017-1) ... 439s Setting up libextutils-hascompiler-perl (0.025-1) ... 439s Setting up m4 (1.4.19-4build1) ... 439s Setting up libclass-singleton-perl (1.6-2) ... 439s Setting up libtime-moment-perl (0.44-2build5) ... 439s Setting up libpadwalker-perl (2.5-1build7) ... 439s Setting up libcpan-requirements-dynamic-perl (0.001-2) ... 439s Setting up libxstring-perl:ppc64el (0.005-2build4) ... 439s Setting up libgomp1:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 439s Setting up libsub-install-perl (0.929-1) ... 439s Setting up libtest2-suite-perl (0.000163-1) ... 439s Setting up libtest-needs-perl (0.002010-1) ... 439s Setting up libscope-guard-perl (0.21-2) ... 439s Setting up libfile-copy-recursive-perl (0.45-4) ... 439s Setting up liberror-perl (0.17029-2) ... 439s Setting up libautovivification-perl:ppc64el (0.18-2build5) ... 439s Setting up libtest-memory-cycle-perl (1.06-2) ... 439s Setting up autotools-dev (20220109.1) ... 439s Setting up libclass-data-inheritable-perl (0.10-1) ... 439s Setting up libalgorithm-c3-perl (0.11-2) ... 439s Setting up libclass-tiny-perl (1.008-2) ... 439s Setting up libtest-deep-unorderedpairs-perl (0.006-3) ... 439s Setting up libref-util-perl (0.204-2) ... 439s Setting up libnet-domain-tld-perl (1.75-4) ... 439s Setting up libquadmath0:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libmpc3:ppc64el (1.3.1-1build2) ... 439s Setting up libvariable-magic-perl (0.64-1build1) ... 439s Setting up autopoint (0.22.5-2) ... 439s Setting up libb-hooks-op-check-perl:ppc64el (0.22-3build2) ... 439s Setting up libparams-util-perl (1.102-3build1) ... 439s Setting up autoconf (2.72-3) ... 439s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 439s Setting up libubsan1:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libsub-name-perl:ppc64el (0.27-1build4) ... 439s Setting up libtype-tiny-xs-perl:ppc64el (0.025-2build1) ... 439s Setting up dwz (0.15-1build6) ... 439s Setting up libdata-validate-domain-perl (0.15-1) ... 439s Setting up libcpan-meta-check-perl (0.018-1) ... 439s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 439s Setting up libfile-chdir-perl (0.1008-1.2) ... 439s Setting up libpath-tiny-perl (0.146-1) ... 439s Setting up libasan8:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libjson-perl (4.10000-1) ... 439s Setting up librole-tiny-perl (2.002004-1) ... 439s Setting up debugedit (1:5.1-1) ... 439s Setting up libfile-sharedir-perl (1.118-3) ... 439s Setting up git-man (1:2.45.2-1ubuntu1) ... 439s Setting up libstrictures-perl (2.000006-1) ... 439s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 439s Setting up libdevel-stacktrace-perl (2.0500-1) ... 439s Setting up libclass-xsaccessor-perl (1.19-4build5) ... 439s Setting up libsort-versions-perl (1.62-3) ... 439s Setting up libtsan2:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libexporter-tiny-perl (1.006002-1) ... 439s Setting up libisl23:ppc64el (0.27-1) ... 439s Setting up libjs-bootstrap5 (5.3.3+dfsg-1) ... 439s Setting up libsereal-decoder-perl (5.004+ds-1build4) ... 439s Setting up libcc1-0:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up liblsan0:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up dctrl-tools (2.24-3build3) ... 439s Setting up libitm1:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up autodep8 (0.28+nmu1ubuntu1) ... 439s Setting up libemail-address-xs-perl (1.05-1build5) ... 439s Setting up automake (1:1.16.5-1.3ubuntu1) ... 439s update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode 439s Setting up libmodule-build-tiny-perl (0.048-1) ... 439s Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... 439s Setting up gettext (0.22.5-2) ... 439s Setting up libmojolicious-perl (9.38+dfsg-1) ... 439s Setting up libtype-tiny-perl (2.004000-1) ... 439s Setting up libsereal-perl (5.004-1) ... 439s Setting up libexception-class-perl (1.45-1) ... 439s Setting up libclass-c3-perl (0.35-2) ... 439s Setting up libdevel-callchecker-perl:ppc64el (0.009-1build1) ... 439s Setting up intltool-debian (0.35.0+20060710.6) ... 439s Setting up libxs-parse-keyword-perl (0.46-1) ... 439s Setting up libtest-file-sharedir-perl (1.001002-2) ... 439s Setting up libdata-optlist-perl (0.114-1) ... 439s Setting up git (1:2.45.2-1ubuntu1) ... 439s Setting up cpp-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 439s Setting up pkg-perl-autopkgtest (0.80) ... 439s Setting up cpp-14 (14.2.0-8ubuntu1) ... 439s Setting up dh-strip-nondeterminism (1.14.0-1) ... 439s Setting up libsyntax-keyword-try-perl (0.30-1) ... 439s Setting up libgit-wrapper-perl (0.048-2) ... 439s Setting up libmro-compat-perl (0.15-2) ... 439s Setting up libgcc-14-dev:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up libstdc++-14-dev:ppc64el (14.2.0-8ubuntu1) ... 439s Setting up cpp-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 439s Setting up gcc-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 439s Setting up libsub-exporter-perl (0.990-1) ... 439s Setting up libeval-closure-perl (0.14-3) ... 439s Setting up libparams-validationcompiler-perl (0.31-1) ... 439s Setting up libfeature-compat-try-perl (0.05-1) ... 439s Setting up g++-14-powerpc64le-linux-gnu (14.2.0-8ubuntu1) ... 439s Setting up po-debconf (1.0.21+nmu1) ... 439s Setting up libparams-classify-perl:ppc64el (0.015-2build6) ... 439s Setting up gcc-14 (14.2.0-8ubuntu1) ... 439s Setting up gcc-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 439s Setting up libmodule-runtime-perl (0.016-2) ... 439s Setting up cpp (4:14.1.0-2ubuntu1) ... 439s Setting up g++-14 (14.2.0-8ubuntu1) ... 439s Setting up g++-powerpc64le-linux-gnu (4:14.1.0-2ubuntu1) ... 439s Setting up libtool (2.4.7-7build1) ... 439s Setting up libmodule-implementation-perl (0.09-2) ... 439s Setting up libpackage-stash-perl (0.40-1) ... 439s Setting up libimport-into-perl (1.002005-2) ... 439s Setting up libmoo-perl (2.005005-1) ... 439s Setting up gcc (4:14.1.0-2ubuntu1) ... 439s Setting up dh-autoreconf (20) ... 439s Setting up libspecio-perl (0.48-1) ... 439s Setting up g++ (4:14.1.0-2ubuntu1) ... 439s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 439s Setting up build-essential (12.10ubuntu1) ... 439s Setting up libmoox-typetiny-perl (0.002003-4) ... 439s Setting up libparams-validate-perl:ppc64el (1.31-2build4) ... 439s Setting up libb-hooks-endofscope-perl (0.28-1) ... 439s Setting up debhelper (13.20ubuntu1) ... 439s Setting up libnamespace-clean-perl (0.27-2) ... 439s Setting up libgetopt-long-descriptive-perl (0.115-1) ... 439s Setting up libtest-json-schema-acceptance-perl (1.026-1) ... 439s Setting up libnamespace-autoclean-perl (0.31-1) ... 439s Setting up libdatetime-locale-perl (1:1.41-1) ... 439s Setting up libdatetime-timezone-perl (1:2.63-2+2024b) ... 439s Setting up libjson-schema-modern-perl (0.593-1) ... 439s Setting up libdatetime-perl (2:1.65-1build3) ... 439s Setting up libdatetime-format-rfc3339-perl (1.8.0-1) ... 439s Setting up autopkgtest-satdep (0) ... 439s Processing triggers for man-db (2.13.0-1) ... 442s Processing triggers for install-info (7.1.1-1) ... 443s Processing triggers for libc-bin (2.40-1ubuntu3) ... 447s (Reading database ... 83594 files and directories currently installed.) 447s Removing autopkgtest-satdep (0) ... 447s autopkgtest [09:21:34]: test autodep8-perl-build-deps: /usr/share/pkg-perl-autopkgtest/runner build-deps 447s autopkgtest [09:21:34]: test autodep8-perl-build-deps: [----------------------- 448s t/00-report-prereqs.t ................... 448s 1..1 448s # 448s # Versions for all modules listed in static metadata (including optional ones): 448s # 448s # === Configure Requires === 448s # 448s # Module Want Have 448s # ------------------- ----- -------- 448s # Module::Build::Tiny 0.034 0.048 448s # perl 5.020 5.040000 448s # 448s # === Test Requires === 448s # 448s # Module Want Have 448s # ------------------------------ -------- -------- 448s # CPAN::Meta::Check 0.011 0.018 448s # CPAN::Meta::Requirements any 2.143 448s # Data::Dumper any 2.189 448s # File::Spec any 3.90 448s # IPC::Open3 any 1.22 448s # Math::BigInt 1.999701 2.003002 448s # Module::Metadata any 1.000038 448s # Test2::API any 1.302199 448s # Test2::V0 any 0.000163 448s # Test::Deep any 1.204 448s # Test::Deep::UnorderedPairs any 0.006 448s # Test::Fatal any 0.017 448s # Test::File::ShareDir any 1.001002 448s # Test::JSON::Schema::Acceptance 1.021 1.026 448s # Test::Memory::Cycle any 1.06 448s # Test::More 0.96 1.302199 448s # Test::Needs any 0.002010 448s # Test::Warnings any 0.033 448s # Test::Without::Module 0.21 0.23 448s # lib any 0.65 448s # perl v5.20.0 5.040000 448s # utf8 any 1.25 448s # 448s # === Test Recommends === 448s # 448s # Module Want Have 448s # ---------- -------- -------- 448s # CPAN::Meta 2.120900 2.150010 448s # 448s # === Runtime Requires === 448s # 448s # Module Want Have 448s # ------------------------- -------- -------- 448s # B any 1.89 448s # Carp any 1.54 448s # Cpanel::JSON::XS 4.38 4.38 448s # Digest::MD5 any 2.58_01 448s # Exporter any 5.78 448s # Feature::Compat::Try any 0.05 448s # File::ShareDir any 1.118 448s # Getopt::Long::Descriptive any 0.115 448s # JSON::PP 4.11 4.16 448s # List::Util 1.55 1.63 448s # MIME::Base64 any 3.16_01 448s # Math::BigFloat any 2.003002 448s # Math::BigInt 1.999701 2.003002 448s # Module::Runtime any 0.016 448s # Mojo::JSON any undef 448s # Mojo::JSON::Pointer any undef 448s # Mojo::URL any undef 448s # Mojolicious 7.87 9.38 448s # Moo any 2.005005 448s # Moo::Role any 2.005005 448s # MooX::TypeTiny 0.002002 0.002003 448s # Path::Tiny any 0.146 448s # Ref::Util 0.100 0.204 448s # Safe::Isa 1.000008 1.000010 448s # Scalar::Util any 1.63 448s # Storable any 3.32 448s # Sub::Install any 0.929 448s # Types::Common::Numeric any 2.004000 448s # Types::Standard 1.016003 2.004000 448s # autovivification any 0.18 448s # constant any 1.33 448s # experimental 0.026 0.032 448s # if any 0.0610 448s # namespace::clean any 0.27 448s # open any 1.13 448s # overload any 1.37 448s # perl v5.20.0 5.040000 448s # stable 0.031 0.033 448s # strict any 1.13 448s # strictures 2 2.000006 448s # warnings any 1.70 448s # 448s # === Runtime Suggests === 448s # 448s # Module Want Have 448s # ------------------------- ---- ------ 448s # Class::XSAccessor any 1.19 448s # Data::Validate::Domain any 0.15 448s # DateTime::Format::RFC3339 any v1.8.0 448s # Email::Address::XS 1.04 1.05 448s # Net::IDN::Encode any 2.500 448s # Ref::Util::XS any 0.117 448s # Sereal any 5.004 448s # Time::Moment any 0.44 448s # Type::Tiny::XS any 0.025 448s # 448s # === Other Modules === 448s # 448s # Module Have 448s # ---------------- -------- 448s # Cpanel::JSON::XS 4.38 448s # Encode 3.21 448s # File::Temp 0.2311 448s # JSON::PP 4.16 448s # JSON::XS missing 448s # Math::BigFloat 2.003002 448s # Math::BigInt 2.003002 448s # Module::Runtime 0.016 448s # Mojolicious 9.38 448s # Pod::Coverage missing 448s # Sereal::Decoder 5.004 448s # Sereal::Encoder 5.004 448s # Sub::Name 0.27 448s # YAML missing 448s # autodie 2.37 448s # 448s ok 1 - Reported prereqs 448s ok 449s t/add-schema.t .......................... 449s # Subtest: evaluate a document 449s ok 1 - evaluate a Document object 449s ok 2 - resource index from the document is copied to the main object 449s ok 3 - evaluate a Document object again without error 449s 1..3 449s ok 1 - evaluate a document 449s # Subtest: evaluate a uri 449s ok 1 - evaluate with a uri that is not yet loaded 449s ok 2 - the metaschema is now loaded and its resources are indexed 449s ok 3 - evaluate against the metaschema again 449s ok 4 - evaluate against the a subschema of the metaschema 449s ok 5 - evaluate against the a fragment of the metaschema that does not exist 449s ok 6 - evaluate against the a plain-name fragment of the metaschema that does not exist 449s 1..6 449s ok 2 - evaluate a uri 449s # Subtest: add a uri resource 449s ok 1 - ->get in scalar context on a URI to the head of a document 449s ok 2 - get() did not return a reference to the original data 449s ok 3 - ->get in list context on a URI to the head of a document 449s ok 4 - ->get in scalar context on a URI to inside of a document 449s ok 5 - ->get in list context on a URI to inside of a document 449s 1..5 449s ok 3 - add a uri resource 449s # Subtest: add a schema associated with a uri 449s ok 1 - cannot use a uri with a fragment 449s ok 2 - added the schema data with an associated uri 449s ok 3 - can now evaluate using a uri to a subschema of a resource we loaded earlier 449s ok 4 - can also evaluate using a non-canonical uri 449s ok 5 - can add the same document and associate it with another schema 449s ok 6 - can add the same document twice, using deprecated interface 449s ok 7 - warned when using deprecated form of add_schema 449s ok 8 - can add the same document again with the proper interface 449s ok 9 - now the document is available as all three uris 449s 1..9 449s ok 4 - add a schema associated with a uri 449s # Subtest: add a document without associating it with a uri 449s ok 1 - added the document without an associated uri 449s ok 2 - document only added under its canonical uri 449s 1..2 449s ok 5 - add a document without associating it with a uri 449s # Subtest: add a schema without a uri 449s ok 1 - added the schema data without an associated uri 449s ok 2 - document only added under its canonical uri 449s 1..2 449s ok 6 - add a schema without a uri 449s # Subtest: $ref to non-canonical uri 449s ok 1 - errors use the canonical uri, not the uri used to evaluate against 449s ok 2 - non-canonical uri is not used to resolve inner $id keywords 449s ok 3 - the canonical uri is updated when use the canonical uri, not the uri used to evaluate against 449s ok 4 - canonical_uri is not always what was in the $ref, even when no local $id is present 449s ok 5 - canonical_uri fragment also needs to be adjusted 449s ok 6 - canonical_uri starts out containing a fragment and can be appended to during traversal 449s 1..6 449s ok 7 - $ref to non-canonical uri 449s # Subtest: register a document against multiple uris; do not allow duplicate uris 449s ok 1 - resource index from the document is copied to the main object 449s ok 2 - add a secondary uri for the same document 449s ok 3 - secondary uri not also added to the document 449s ok 4 - cannot call add_schema with the same URI as for another schema 449s ok 5 - cannot reuse the same $id in another document 449s ok 6 - resource index remains unchanged after erroneous add_schema calls 449s ok 7 - adding the same schema *content* again does not fail, and returns the original document object 449s ok 8 - original document remains unchanged - the new uri was not added to it 449s ok 9 - new uri was added against the original document (no new document created) 449s ok 10 - ->get in scalar context on a secondary URI with a plain-name fragment 449s ok 11 - ->get in list context on a URI with a plain-name fragment includes the canonical uri 449s ok 12 - ->get in scalar context for a nonexistent resource returns undef 449s ok 13 - ->get in list context for a nonexistent resource returns empty list 449s 1..13 449s ok 8 - register a document against multiple uris; do not allow duplicate uris 449s # Subtest: external resource with externally-supplied uri; main resource with multiple uris 449s ok 1 - all uris in result are correct, using secondary uri as the target 449s ok 2 - all uris in result are correct, using main uri as the target 449s ok 3 - all uris in result are correct, using the literal schema as the target 449s 1..3 449s ok 9 - external resource with externally-supplied uri; main resource with multiple uris 449s # Subtest: document with no canonical URI, but assigned a URI through add_schema 449s ok 1 - evaluate a schema referencing a document given an ad-hoc uri 449s ok 2 - adding a uri to an existing document does not change its canonical uri 449s 1..2 449s ok 10 - document with no canonical URI, but assigned a URI through add_schema 449s 1..10 449s ok 454s t/additional-tests-draft2019-09.t ....... 454s # AUTHOR_TESTING: 454s # AUTOMATED_TESTING: 1 454s # EXTENDED_TESTING: 454s # NO_TODO: 454s # TEST_DIR: 454s # NO_SHORT_CIRCUIT: 454s # 454s # running tests in /tmp/autopkgtest.KTsMu3/autopkgtest_tmp/smokeJpyEyJ/t/additional-tests-draft2019-09 against draft2019-09... 454s # 454s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 454s # result: { 454s # "valid": true 454s # } 454s # short-circuited result: { 454s # "valid": true 454s # } 454s ok 1 - test passes: data is valid: true 454s 1..1 454s } 454s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 454s # result: { 454s # "errors": [ 454s # { 454s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 454s # "error": "value does not match", 454s # "instanceLocation": "", 454s # "keywordLocation": "/else/$ref/const" 454s # }, 454s # { 454s # "error": "subschema is not valid", 454s # "instanceLocation": "", 454s # "keywordLocation": "/else" 454s # } 454s # ], 454s # "valid": false 454s # } 454s # short-circuited result: { 454s # "errors": [ 454s # { 454s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 454s # "error": "value does not match", 454s # "instanceLocation": "", 454s # "keywordLocation": "/else/$ref/const" 454s # }, 454s # { 454s # "error": "subschema is not valid", 454s # "instanceLocation": "", 454s # "keywordLocation": "/else" 454s # } 454s # ], 454s # "valid": false 454s # } 454s ok 1 - test passes: data is valid: false 454s 1..1 454s } 454s # 454s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 454s # result: { 454s # "valid": true 454s # } 454s # short-circuited result: { 454s # "valid": true 454s # } 454s ok 1 - test passes: data is valid: true 454s 1..1 454s } 454s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 454s # result: { 454s # "errors": [ 454s # { 454s # "error": "additional property not permitted", 454s # "instanceLocation": "/bar", 454s # "keywordLocation": "/unevaluatedProperties" 454s # }, 454s # { 454s # "error": "not all additional properties are valid", 454s # "instanceLocation": "", 454s # "keywordLocation": "/unevaluatedProperties" 454s # } 454s # ], 454s # "valid": false 454s # } 454s # short-circuited result: { 454s # "errors": [ 454s # { 454s # "error": "additional property not permitted", 454s # "instanceLocation": "/bar", 454s # "keywordLocation": "/unevaluatedProperties" 454s # }, 454s # { 454s # "error": "not all additional properties are valid", 454s # "instanceLocation": "", 454s # "keywordLocation": "/unevaluatedProperties" 454s # } 454s # ], 454s # "valid": false 454s # } 454s ok 1 - test passes: data is valid: false 454s 1..1 454s } 454s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 454s # result: { 454s # "valid": true 454s # } 454s # short-circuited result: { 454s # "valid": true 454s # } 454s ok 1 - test passes: data is valid: true 454s 1..1 454s } 454s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 454s # result: { 454s # "errors": [ 454s # { 454s # "error": "additional property not permitted", 454s # "instanceLocation": "/bar", 454s # "keywordLocation": "/unevaluatedProperties" 454s # }, 454s # { 454s # "error": "not all additional properties are valid", 454s # "instanceLocation": "", 454s # "keywordLocation": "/unevaluatedProperties" 454s # } 454s # ], 454s # "valid": false 454s # } 454s # short-circuited result: { 454s # "errors": [ 454s # { 454s # "error": "additional property not permitted", 454s # "instanceLocation": "/bar", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/foo", 455s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "no subschemas are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/foo", 455s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "no subschemas are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/foo", 455s # "keywordLocation": "/allOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/foo", 455s # "keywordLocation": "/allOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/not" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/not" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/then/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/then/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/then/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/then/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 16 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 17 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/0/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/1/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/2/const" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/3/enum" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 455s # "error": "no subschemas are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/0/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/1/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/2/const" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf/3/enum" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 455s # "error": "no subschemas are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/anyOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 18 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 19 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 20 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 21 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 22 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 23 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 24 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 25 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 26 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 27 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 28 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 29 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 30 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv4", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 31 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 32 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 33 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 34 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 35 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 36 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 37 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid ipv6", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 48 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 49 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 50 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 51 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 52 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 53 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 54 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid relative-json-pointer", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 55 - formats.json: "format validation after a $ref" - "invalid duration" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/my_format/format", 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/my_format/format", 455s # "error": "not a valid duration", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 56 - formats.json: "format validation after a $ref" - "valid duration" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 57 - formats.json: "format validation after an $id" - "invalid duration" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 455s # "error": "not a valid duration", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/allOf/0/format" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "bloop#/allOf", 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/allOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 455s # "error": "not a valid duration", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/allOf/0/format" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "bloop#/allOf", 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/allOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 58 - formats.json: "format validation after an $id" - "valid duration" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s # 455s ok 59 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 60 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else/$ref/const" 455s # }, 455s # { 455s # "error": "subschema is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else/$ref/const" 455s # }, 455s # { 455s # "error": "subschema is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 61 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 62 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 63 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 64 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$id cannot be empty", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$id" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 65 - integers.json: "type checks" - "beyond int64 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 66 - integers.json: "type checks" - "int64 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 67 - integers.json: "type checks" - "beyond int32 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 68 - integers.json: "type checks" - "int32 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 69 - integers.json: "type checks" - "zero" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 70 - integers.json: "type checks" - "int32 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 71 - integers.json: "type checks" - "beyond int32 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 72 - integers.json: "type checks" - "upper int64 boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 73 - integers.json: "type checks" - "beyond int64 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 74 - integers.json: "int32 range checks" - "beyond lower boundary" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than -2147483648", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than -2147483648", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 75 - integers.json: "int32 range checks" - "lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 76 - integers.json: "int32 range checks" - "zero" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 77 - integers.json: "int32 range checks" - "upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 78 - integers.json: "int32 range checks" - "beyond upper boundary" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2147483647", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2147483647", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 79 - integers.json: "int64 range checks" - "beyond lower boundary" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than -9223372036854775808", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than -9223372036854775808", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 80 - integers.json: "int64 range checks" - "lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 81 - integers.json: "int64 range checks" - "zero" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 82 - integers.json: "int64 range checks" - "upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 83 - integers.json: "int64 range checks" - "beyond upper boundary" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 9223372036854775807", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 9223372036854775807", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 84 - integers.json: "equality checks" - "beyond int64 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 85 - integers.json: "equality checks" - "int64 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 86 - integers.json: "equality checks" - "beyond int32 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 87 - integers.json: "equality checks" - "int32 lower boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 88 - integers.json: "equality checks" - "zero" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 89 - integers.json: "equality checks" - "one" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/enum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/enum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 90 - integers.json: "equality checks" - "int32 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 91 - integers.json: "equality checks" - "beyond int32 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 92 - integers.json: "equality checks" - "int64 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 93 - integers.json: "equality checks" - "beyond int64 upper boundary" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s # 455s ok 94 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 95 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 96 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 97 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 98 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 99 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 100 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 101 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 102 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 103 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 104 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 105 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 106 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 107 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 108 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 109 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 110 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 111 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 112 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 113 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 114 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 115 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 116 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 117 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 118 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 119 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 120 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 121 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 122 - keyword-independence.json: "items + maximum" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 123 - keyword-independence.json: "items + maximum" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 124 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 125 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 126 - keyword-independence.json: "items + minimum" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 127 - keyword-independence.json: "items + minimum" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 128 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 129 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 130 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 131 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 132 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 133 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 134 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 135 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 136 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 137 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 138 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 139 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 140 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 141 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 142 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 143 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 144 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 145 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 146 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 147 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 148 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 149 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 150 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 151 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 152 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 153 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 154 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 155 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 156 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 157 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 158 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 159 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 160 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 161 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 162 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 163 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 164 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 165 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 166 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 167 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 168 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 169 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 170 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 171 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 172 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 173 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 174 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 175 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 176 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 177 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 178 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 179 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 180 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 181 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 182 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 183 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 184 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 185 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 186 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 187 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 188 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 189 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 190 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 191 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 192 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 193 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 194 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 195 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 196 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 197 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 198 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 199 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 200 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 201 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 202 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 203 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 204 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 205 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 206 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 207 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 208 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 209 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 210 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 211 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 212 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 213 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 214 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 215 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 216 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 217 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 218 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 219 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 220 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 221 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 222 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 223 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 224 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 225 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 226 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 227 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 228 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 229 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 230 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 231 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 232 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 233 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 234 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 235 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 236 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 237 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 238 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 239 - keyword-independence.json: "contains + properties" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 240 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 241 - keyword-independence.json: "contains + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 242 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 243 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 244 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 245 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 246 - keyword-independence.json: "contains + required" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 247 - keyword-independence.json: "contains + required" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 248 - keyword-independence.json: "contains + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 249 - keyword-independence.json: "contains + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 250 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 251 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 252 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 253 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 254 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 255 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 256 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 257 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 258 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 259 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 260 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 261 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 262 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 263 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 264 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 265 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 266 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 267 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 268 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 269 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 270 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 271 - keyword-independence.json: "items + minProperties" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 272 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 273 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 274 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 275 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 276 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 277 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 278 - keyword-independence.json: "items + properties" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 279 - keyword-independence.json: "items + properties" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 280 - keyword-independence.json: "items + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 281 - keyword-independence.json: "items + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 282 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 283 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 284 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 285 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 286 - keyword-independence.json: "items + required" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 287 - keyword-independence.json: "items + required" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 288 - keyword-independence.json: "items + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 289 - keyword-independence.json: "items + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 290 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 291 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 292 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 293 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 294 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 295 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 296 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 297 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 298 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 299 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 300 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 301 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 302 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 303 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 304 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 305 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 306 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 307 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 308 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 309 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 310 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 311 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 312 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 313 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 314 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 315 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 316 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 317 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 318 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 319 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 320 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 321 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 322 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 323 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 324 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 325 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 326 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 327 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 328 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 329 - keyword-independence.json: "maxItems + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 330 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 331 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 332 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 333 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 334 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 335 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 336 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 337 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 338 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 339 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 340 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 341 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 342 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 343 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 344 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 345 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 346 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 347 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 348 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 349 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 350 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 351 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 352 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 353 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 354 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 355 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 356 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 357 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 358 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 359 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 360 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 361 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 362 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 363 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 364 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 365 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 366 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 367 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 368 - keyword-independence.json: "minItems + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 369 - keyword-independence.json: "minItems + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 370 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 371 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 372 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 373 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 374 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 375 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 376 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 377 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 378 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 379 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 380 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 381 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 382 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 383 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 384 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 385 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 386 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 387 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 388 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 389 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 390 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 391 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 392 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 393 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 394 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 395 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 396 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 397 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 398 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 399 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 400 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 401 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 402 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 403 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 404 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 405 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 406 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 407 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 408 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 409 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 410 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 411 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 412 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 413 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 414 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 415 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 416 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 417 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 418 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 419 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 420 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 421 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 422 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 423 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 424 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 425 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 426 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 427 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 428 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 429 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 430 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 431 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 432 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 433 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 434 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 435 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 436 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 437 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 438 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 439 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 440 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 441 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 442 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 443 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 444 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 445 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 446 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 447 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 448 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 449 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 450 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 451 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 452 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 453 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 454 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 455 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 456 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 457 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 458 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 459 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 460 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 461 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 462 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is not valid against any item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/contains" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 463 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 464 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 465 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 466 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 467 - keyword-independence.json: "items + maxLength" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 468 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 469 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 470 - keyword-independence.json: "items + minLength" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 471 - keyword-independence.json: "items + minLength" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 472 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 473 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 474 - keyword-independence.json: "items + pattern" - "array, items invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/items/0" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 475 - keyword-independence.json: "items + pattern" - "array, items valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 476 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 477 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 478 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 479 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 480 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 481 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 482 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 483 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 484 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 485 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 486 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has more than 1 item", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 487 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 488 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 489 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 490 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 491 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 492 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 493 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 494 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 495 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 496 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 497 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 498 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "array has fewer than 2 items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 499 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 500 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 501 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 502 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 503 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 504 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 505 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 506 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 507 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 508 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 509 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 510 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional item not permitted", 455s # "instanceLocation": "/0", 455s # "keywordLocation": "/unevaluatedItems" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 511 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 512 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 513 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 514 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 515 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 516 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 517 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 518 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 519 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 520 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 521 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 522 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "items at indices 0 and 1 are not unique", 455s # "instanceLocation": "", 455s # "keywordLocation": "/uniqueItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 523 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 524 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 525 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 526 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 527 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 528 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 529 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 530 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 531 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 532 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 533 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 534 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 535 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 536 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 537 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 538 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 539 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 540 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 541 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 542 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 543 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 544 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 545 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 546 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 547 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 548 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 549 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 550 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 551 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 552 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 553 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 554 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 555 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 556 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 557 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 558 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 559 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 560 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 561 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 562 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 563 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 564 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 565 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 566 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 567 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 568 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 569 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 570 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 571 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 572 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 573 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 574 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 575 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 576 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 577 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 578 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 579 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 580 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 581 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 582 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 583 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 584 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 585 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 586 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 587 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 588 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 589 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 590 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 591 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 592 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 593 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 594 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 595 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 596 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 597 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 598 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 599 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 600 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 601 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 602 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 603 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 604 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 605 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 606 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 607 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 608 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 609 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 610 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 611 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 612 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 613 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 614 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 615 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 616 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 617 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 618 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 619 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 620 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 621 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 622 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 623 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 624 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 625 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 626 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 627 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 628 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 629 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 630 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 631 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 632 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 633 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 634 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 635 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 636 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 637 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 638 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 639 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 640 - keyword-independence.json: "maximum + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 641 - keyword-independence.json: "maximum + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 642 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 643 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 644 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 645 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 646 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 647 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 648 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 649 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 650 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 651 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 652 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 653 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 654 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 655 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 656 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 657 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 658 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 659 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 660 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 661 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 662 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 663 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 664 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 665 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 666 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 667 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 668 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 669 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 670 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 671 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 672 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 673 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 674 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 675 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 676 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 677 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 678 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 679 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 680 - keyword-independence.json: "minimum + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 681 - keyword-independence.json: "minimum + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 682 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 683 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 684 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 685 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 686 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 687 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 688 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 689 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 690 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 691 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 692 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 693 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 694 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 695 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 696 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 697 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 698 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 699 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 700 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 701 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 702 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 703 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 704 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 705 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 706 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 707 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 708 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 709 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 710 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 711 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 712 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 713 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 714 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 715 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 716 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 717 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 718 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 719 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 720 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 721 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 722 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 723 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 724 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 725 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 726 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 727 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 728 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 729 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 730 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 731 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 732 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 733 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 734 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMaximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 735 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 736 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 737 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 738 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 739 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 740 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 741 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 742 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 743 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 744 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 745 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 746 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than or equal to 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/exclusiveMinimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 747 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 748 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 749 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 750 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 751 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 752 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 753 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 754 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 755 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 756 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 757 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 758 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 759 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 760 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 761 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 762 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 763 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 764 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 765 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 766 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 767 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 768 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 769 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 770 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minimum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 771 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 772 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 773 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 774 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 775 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 776 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 777 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 778 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 779 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 780 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 781 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 782 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/multipleOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 783 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 784 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 785 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 786 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 787 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 788 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 789 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 790 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 791 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 792 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 793 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 794 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/additionalProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 795 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 796 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 797 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 798 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 799 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 800 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 801 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 802 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 803 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 804 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 805 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 806 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: y", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentRequired" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 807 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 808 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 809 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 810 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 811 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 812 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 813 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 814 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 815 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 816 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 817 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 818 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas/x" 455s # }, 455s # { 455s # "error": "not all dependencies are satisfied", 455s # "instanceLocation": "", 455s # "keywordLocation": "/dependentSchemas" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 819 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 820 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 821 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 822 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 823 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 824 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 825 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 826 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 827 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 828 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 829 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 830 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has more than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 831 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 832 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 833 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 834 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 835 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 836 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 837 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 838 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 839 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 840 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 841 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 842 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object has fewer than 1 property", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 843 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 844 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 845 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 846 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 847 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 848 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 849 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 850 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 851 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 852 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 853 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 854 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/no", 455s # "keywordLocation": "/patternProperties/no" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 855 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 856 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 857 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 858 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 859 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 860 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 861 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 862 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 863 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 864 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 865 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 866 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/properties/x" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 867 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 868 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 869 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 870 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 871 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 872 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 873 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 874 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 875 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 876 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 877 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 878 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "subschema is false", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/propertyNames" 455s # }, 455s # { 455s # "error": "not all property names are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/propertyNames" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 879 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 880 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 881 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 882 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 883 - keyword-independence.json: "maxLength + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 884 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 885 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 886 - keyword-independence.json: "minLength + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 887 - keyword-independence.json: "minLength + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 888 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 889 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 890 - keyword-independence.json: "pattern + required" - "object, required invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "object is missing property: x", 455s # "instanceLocation": "", 455s # "keywordLocation": "/required" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 891 - keyword-independence.json: "pattern + required" - "object, required valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 892 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 893 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 894 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 895 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 896 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is greater than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/maxLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 897 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 898 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 899 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 900 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "length is less than 2", 455s # "instanceLocation": "", 455s # "keywordLocation": "/minLength" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 901 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 902 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "additional property not permitted", 455s # "instanceLocation": "/x", 455s # "keywordLocation": "/unevaluatedProperties" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 903 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 904 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "pattern does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/pattern" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 905 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s # 455s ok 906 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/const_string", 455s # "keywordLocation": "/properties/const_string/const" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/const_string", 455s # "keywordLocation": "/properties/const_string/const" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 907 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 908 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 909 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/const_number", 455s # "keywordLocation": "/properties/const_number/const" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/const_number", 455s # "keywordLocation": "/properties/const_number/const" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 910 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/enum_string", 455s # "keywordLocation": "/properties/enum_string/enum" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/enum_string", 455s # "keywordLocation": "/properties/enum_string/enum" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 911 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 912 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 913 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/enum_number", 455s # "keywordLocation": "/properties/enum_number/enum" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "/enum_number", 455s # "keywordLocation": "/properties/enum_number/enum" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 914 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 915 - recursive-dynamic.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "integerNode.json#/type", 455s # "error": "got number, not one of object, integer", 455s # "instanceLocation": "/november", 455s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else/$ref/additionalProperties" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "main.json#/else", 455s # "error": "subschema is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "integerNode.json#/type", 455s # "error": "got number, not one of object, integer", 455s # "instanceLocation": "/november", 455s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else/$ref/additionalProperties" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "main.json#/else", 455s # "error": "subschema is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/else" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 916 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a true schema" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 917 - recursive-dynamic.json: "$recursiveRef points to a boolean schema" - "follow $recursiveRef to a false schema" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/false", 455s # "error": "subschema is false", 455s # "instanceLocation": "/false", 455s # "keywordLocation": "/properties/false/$recursiveRef" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "#/$defs/false", 455s # "error": "subschema is false", 455s # "instanceLocation": "/false", 455s # "keywordLocation": "/properties/false/$recursiveRef" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 918 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 919 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 920 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 921 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 922 - 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" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 923 - 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" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 455s # "error": "got string, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/$ref/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 455s # "error": "got string, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/oneOf/0/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 455s # "error": "no subschemas are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/oneOf" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 455s # "error": "got string, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf/0/$ref/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 455s # "error": "subschema 0 is not valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/allOf" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 924 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 925 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 926 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 927 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 455s # "error": "value is greater than 10", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$ref/maximum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 928 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/enum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value does not match", 455s # "instanceLocation": "", 455s # "keywordLocation": "/enum" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 929 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 930 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$defs/foo/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$defs/foo/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 931 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$defs/foo/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "$ref value is not a valid URI reference", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$defs/foo/$ref" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 932 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 933 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "/list/0", 455s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "/list", 455s # "keywordLocation": "/properties/list/$ref/items" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 455s # "error": "got string, not integer", 455s # "instanceLocation": "/list/0", 455s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "/list", 455s # "keywordLocation": "/properties/list/$ref/items" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 934 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 935 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/items/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/items/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 936 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 937 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/items/1/multipleOf" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/items/1/multipleOf" 455s # }, 455s # { 455s # "error": "not all items are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/items" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 938 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 939 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/2", 455s # "keywordLocation": "/additionalItems/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/2", 455s # "keywordLocation": "/additionalItems/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 940 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 941 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/unevaluatedItems/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/1", 455s # "keywordLocation": "/unevaluatedItems/multipleOf" 455s # }, 455s # { 455s # "error": "subschema is not valid against all additional items", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedItems" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 942 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 943 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/properties/beta/multipleOf" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/properties/beta/multipleOf" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 944 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 945 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/properties/beta" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/properties/beta" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/properties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 946 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 947 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/patternProperties/^b/multipleOf" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/patternProperties/^b/multipleOf" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 948 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 949 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/patternProperties/^b" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "property not permitted", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/patternProperties/^b" 455s # }, 455s # { 455s # "error": "not all properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/patternProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 950 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 951 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/additionalProperties/multipleOf" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/additionalProperties/multipleOf" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/additionalProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 952 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 953 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/unevaluatedProperties/multipleOf" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "value is not a multiple of 2", 455s # "instanceLocation": "/beta", 455s # "keywordLocation": "/unevaluatedProperties/multipleOf" 455s # }, 455s # { 455s # "error": "not all additional properties are valid", 455s # "instanceLocation": "", 455s # "keywordLocation": "/unevaluatedProperties" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 954 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 955 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "got string, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "got string, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 956 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "got object, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "got object, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 957 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "got array, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "got array, not number", 455s # "instanceLocation": "", 455s # "keywordLocation": "/type" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 958 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 959 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 960 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 455s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 455s # "error": "the first vocabulary (by evaluation_order) must be Core", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary" 455s # }, 455s # { 455s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core", 455s # "error": "\"https://json-schema.org/draft/2020-12/vocab/core\" uses draft2020-12, but the metaschema itself uses draft2019-09", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12020-12~1vocab~1core" 455s # }, 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 455s # "error": "the first vocabulary (by evaluation_order) must be Core", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary" 455s # }, 455s # { 455s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 961 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 962 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 455s # result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 455s # "error": "\"https://foo.com\" is not a known vocabulary", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 455s # }, 455s # { 455s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 455s # "error": "\"https://foo.com\" is not a known vocabulary", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 455s # }, 455s # { 455s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 455s # "instanceLocation": "", 455s # "keywordLocation": "/$schema" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 963 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 964 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 965 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date-time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date-time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 966 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date-time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date-time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 967 - optional/format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid date", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s ok 968 - optional/format-time.json: "validation of time strings" - "valid leap second, Zulu" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 969 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 970 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 971 - optional/format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 972 - optional/format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 973 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 974 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 975 - optional/format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 976 - optional/format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 455s # result: { 455s # "valid": true 455s # } 455s # short-circuited result: { 455s # "valid": true 455s # } 455s ok 1 - test passes: data is valid: true 455s 1..1 455s } 455s ok 977 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 978 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 979 - optional/format-time.json: "validation of time strings" - "no time offset" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s ok 980 - optional/format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 455s # result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s # short-circuited result: { 455s # "errors": [ 455s # { 455s # "error": "not a valid time", 455s # "instanceLocation": "", 455s # "keywordLocation": "/format" 455s # } 455s # ], 455s # "valid": false 455s # } 455s ok 1 - test passes: data is valid: false 455s 1..1 455s } 455s # 455s # 455s # generated with: Test::JSON::Schema::Acceptance 1.026 455s # specification version: draft2019-09 455s # using custom test directory: t/additional-tests-draft2019-09 455s # optional tests included: yes 455s # 455s # filename pass todo-fail fail 455s # --------------------------------------------------------------- 455s # anchor.json 2 0 0 455s # annotation-collection.json 10 0 0 455s # badRef.json 3 0 0 455s # faux-buggy-schemas.json 2 0 0 455s # format-duration.json 9 0 0 455s # format-ipv4.json 4 0 0 455s # format-ipv6.json 17 0 0 455s # format-relative-json-pointer.json 7 0 0 455s # formats.json 4 0 0 455s # id.json 6 0 0 455s # integers.json 29 0 0 455s # keyword-independence.json 812 0 0 455s # loose-types-const-enum.json 8 0 0 455s # recursive-dynamic.json 4 0 0 455s # ref-and-id.json 6 0 0 455s # ref.json 10 0 0 455s # short-circuit.json 20 0 0 455s # unknownKeyword.json 4 0 0 455s # vocabulary.json 5 0 0 455s # optional/format-date-time.json 4 0 0 455s # optional/format-date.json 1 0 0 455s # optional/format-time.json 13 0 0 455s # --------------------------------------------------------------- 455s # TOTAL 980 0 0 455s # 455s # Congratulations, all non-optional tests are passing! 455s # 455s ok 981 - no leaks in the main evaluator object 455s ok 982 - no leaks in the short-circuiting evaluator object 455s ok 983 - got unsupported keyword warnings 455s 1..983 455s ok 460s t/additional-tests-draft2020-12.t ....... 460s # AUTHOR_TESTING: 460s # AUTOMATED_TESTING: 1 460s # EXTENDED_TESTING: 460s # NO_TODO: 460s # TEST_DIR: 460s # NO_SHORT_CIRCUIT: 460s # 460s # running tests in /tmp/autopkgtest.KTsMu3/autopkgtest_tmp/smokeJpyEyJ/t/additional-tests-draft2020-12 against draft2020-12... 460s # 460s ok 1 - anchor.json: "non-schema object containing an $anchor property" - "skip traversing definition for a valid result" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 2 - anchor.json: "non-schema object containing an $anchor property" - "const at const_not_anchor does not match" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else/$ref/const" 460s # }, 460s # { 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/const_not_anchor/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else/$ref/const" 460s # }, 460s # { 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 3 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "properties evaluated from allOf" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 4 - annotation-collection.json: "annotations come from an allOf, unevaluated is a sibling" - "extra property" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/bar", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/bar", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 5 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "properties evaluated from additionalProperties" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 6 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is a sibling" - "extra property" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/bar", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/bar", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 7 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "properties evaluated from allOf, but unevaluated is buried" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/foo", 460s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "no subschemas are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/foo", 460s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "no subschemas are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 8 - annotation-collection.json: "annotations come from an allOf, unevaluated is in an allOf" - "no properties" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 9 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "properties evaluated from additionalProperties, but unevaluated is buried" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/foo", 460s # "keywordLocation": "/allOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/allOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "subschema 0 is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/allOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/foo", 460s # "keywordLocation": "/allOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/allOf/0/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "subschema 0 is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/allOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 10 - annotation-collection.json: "annotations from adjacent keywords, unevaluated is in an allOf" - "no properties" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 11 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 12 - annotation-collection.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/not" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/not" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 13 - badRef.json: "good references in schemas" - "this data is never used" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 14 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$ref value is not a valid URI reference", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$ref value is not a valid URI reference", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 15 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$ref value is not a valid URI reference", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$ref value is not a valid URI reference", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s 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" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 460s # "error": "got string, not null", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref/$dynamicRef/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "main#/then", 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 460s # "error": "got string, not null", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref/$dynamicRef/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "main#/then", 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s 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" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 460s # "error": "got integer, not null", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref/$dynamicRef/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "main#/then", 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "second_scope#/$defs/thingy/type", 460s # "error": "got integer, not null", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then/$ref/$dynamicRef/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "main#/then", 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/then" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s 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" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 19 - dynamicRef.json: "schema in dynamic scope must have a $dynamicAnchor that matches the fragment" - "value would fail under either subschema" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "orig#/minimum", 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$dynamicRef/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "orig#/minimum", 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$dynamicRef/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s 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" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 21 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 22 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/false", 460s # "error": "subschema is false", 460s # "instanceLocation": "/false", 460s # "keywordLocation": "/properties/false/$dynamicRef" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/false", 460s # "error": "subschema is false", 460s # "instanceLocation": "/false", 460s # "keywordLocation": "/properties/false/$dynamicRef" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 23 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 24 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 460s # "error": "got string, not integer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/0/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 460s # "error": "got string, not integer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/1/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/2/const" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/3/enum" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 460s # "error": "no subschemas are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 460s # "error": "got string, not integer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/0/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 460s # "error": "got string, not integer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/1/type" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/2/const" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf/3/enum" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 460s # "error": "no subschemas are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/anyOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 25 - format-duration.json: "validation of duration strings" - "years and months can appear without days" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 26 - format-duration.json: "validation of duration strings" - "months and days can appear without years" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 27 - format-duration.json: "validation of duration strings" - "hours and minutes can appear without seconds" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 28 - format-duration.json: "validation of duration strings" - "minutes and seconds can appear without hour" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 29 - format-duration.json: "validation of duration strings" - "elements may be omitted if their value is zero" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 30 - format-duration.json: "validation of duration strings" - "half a year duration, with full stop decimal point" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 31 - format-duration.json: "validation of duration strings" - "half a year duration, with comma decimal point" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 32 - format-duration.json: "validation of duration strings" - "only one unit can have a non-integer quantity" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 33 - format-duration.json: "validation of duration strings" - "only the smallest unit can have a non-integer quantity" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 34 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 35 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 36 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 37 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv4", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 38 - format-ipv6.json: "validation of ipv6 strings" - "fully expanded with zeroes" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 39 - format-ipv6.json: "validation of ipv6 strings" - "partially collapsed zeroes" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 40 - format-ipv6.json: "validation of ipv6 strings" - "4,2 zeroes" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 41 - format-ipv6.json: "validation of ipv6 strings" - "8 single zeroes, no double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 42 - format-ipv6.json: "validation of ipv6 strings" - "7 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 43 - format-ipv6.json: "validation of ipv6 strings" - "6 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 44 - format-ipv6.json: "validation of ipv6 strings" - "5 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 45 - format-ipv6.json: "validation of ipv6 strings" - "4 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 46 - format-ipv6.json: "validation of ipv6 strings" - "3 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 47 - format-ipv6.json: "validation of ipv6 strings" - "2 single zeroes, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 48 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, leading double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 49 - format-ipv6.json: "validation of ipv6 strings" - "1 single zero, trailing double colon" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 50 - format-ipv6.json: "validation of ipv6 strings" - "2 leading colons with 8 zeroes" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 51 - format-ipv6.json: "validation of ipv6 strings" - "1 leading colon with 8 zeroes" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 52 - format-ipv6.json: "validation of ipv6 strings" - "colons in the middle with 8 zeroes" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 53 - format-ipv6.json: "validation of ipv6 strings" - "1 trailing colon with 8 zeroes" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 54 - format-ipv6.json: "validation of ipv6 strings" - "2 trailing colons with 8 zeroes" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid ipv6", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 55 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 56 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 57 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 58 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 59 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 60 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 61 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "not a valid relative-json-pointer", 460s # "instanceLocation": "", 460s # "keywordLocation": "/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 62 - formats.json: "format validation after a $ref" - "invalid duration" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/my_format/format", 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$ref/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/my_format/format", 460s # "error": "not a valid duration", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$ref/format" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 63 - formats.json: "format validation after a $ref" - "valid duration" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 64 - formats.json: "format validation after an $id" - "invalid duration" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 460s # "error": "not a valid duration", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items/allOf/0/format" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "bloop#/allOf", 460s # "error": "subschema 0 is not valid", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items/allOf" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "bloop#/allOf/0/format", 460s # "error": "not a valid duration", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items/allOf/0/format" 460s # }, 460s # { 460s # "absoluteKeywordLocation": "bloop#/allOf", 460s # "error": "subschema 0 is not valid", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items/allOf" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 65 - formats.json: "format validation after an $id" - "valid duration" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s # 460s ok 66 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 67 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 460s # result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else/$ref/const" 460s # }, 460s # { 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "absoluteKeywordLocation": "#/$defs/const_not_id/const", 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else/$ref/const" 460s # }, 460s # { 460s # "error": "subschema is not valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/else" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 68 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 69 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 70 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 71 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "$id cannot be empty", 460s # "instanceLocation": "", 460s # "keywordLocation": "/$id" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s # 460s ok 72 - integers.json: "type checks" - "beyond int64 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 73 - integers.json: "type checks" - "int64 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 74 - integers.json: "type checks" - "beyond int32 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 75 - integers.json: "type checks" - "int32 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 76 - integers.json: "type checks" - "zero" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 77 - integers.json: "type checks" - "int32 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 78 - integers.json: "type checks" - "beyond int32 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 79 - integers.json: "type checks" - "upper int64 boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 80 - integers.json: "type checks" - "beyond int64 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 81 - integers.json: "int32 range checks" - "beyond lower boundary" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than -2147483648", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than -2147483648", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 82 - integers.json: "int32 range checks" - "lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 83 - integers.json: "int32 range checks" - "zero" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 84 - integers.json: "int32 range checks" - "upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 85 - integers.json: "int32 range checks" - "beyond upper boundary" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2147483647", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2147483647", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 86 - integers.json: "int64 range checks" - "beyond lower boundary" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than -9223372036854775808", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than -9223372036854775808", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 87 - integers.json: "int64 range checks" - "lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 88 - integers.json: "int64 range checks" - "zero" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 89 - integers.json: "int64 range checks" - "upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 90 - integers.json: "int64 range checks" - "beyond upper boundary" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 9223372036854775807", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 9223372036854775807", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 91 - integers.json: "equality checks" - "beyond int64 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 92 - integers.json: "equality checks" - "int64 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 93 - integers.json: "equality checks" - "beyond int32 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 94 - integers.json: "equality checks" - "int32 lower boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 95 - integers.json: "equality checks" - "zero" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 96 - integers.json: "equality checks" - "one" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/enum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/enum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 97 - integers.json: "equality checks" - "int32 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 98 - integers.json: "equality checks" - "beyond int32 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 99 - integers.json: "equality checks" - "int64 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 100 - integers.json: "equality checks" - "beyond int64 upper boundary" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s # 460s ok 101 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 102 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 103 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 104 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 105 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 106 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 107 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 108 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 109 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 110 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 111 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 112 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 113 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 114 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 115 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 116 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 117 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 118 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 119 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 120 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 121 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 122 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 123 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 124 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 125 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 126 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 127 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 128 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 129 - keyword-independence.json: "items + maximum" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 130 - keyword-independence.json: "items + maximum" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 131 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 132 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 133 - keyword-independence.json: "items + minimum" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 134 - keyword-independence.json: "items + minimum" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 135 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 136 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 137 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 138 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 139 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 140 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 141 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 142 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 143 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 144 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 145 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 146 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 147 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 148 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 149 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 150 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 151 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 152 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 153 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 154 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 155 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 156 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 157 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 158 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 159 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 160 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 161 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 162 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 163 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 164 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 165 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 166 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 167 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 168 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 169 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 170 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 171 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 172 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 173 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 174 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 175 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 176 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 177 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 178 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 179 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 180 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 181 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 182 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 183 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 184 - keyword-independence.json: "exclusiveMaximum + prefixItems" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 185 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 186 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 187 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 188 - keyword-independence.json: "exclusiveMinimum + prefixItems" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 189 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 190 - keyword-independence.json: "maximum + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 191 - keyword-independence.json: "maximum + prefixItems" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 192 - keyword-independence.json: "maximum + prefixItems" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 193 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 194 - keyword-independence.json: "minimum + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 195 - keyword-independence.json: "minimum + prefixItems" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 196 - keyword-independence.json: "minimum + prefixItems" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 197 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 198 - keyword-independence.json: "multipleOf + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 199 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 200 - keyword-independence.json: "multipleOf + prefixItems" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 201 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 202 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 203 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 204 - keyword-independence.json: "exclusiveMaximum + unevaluatedItems" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 205 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 206 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 207 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 208 - keyword-independence.json: "exclusiveMinimum + unevaluatedItems" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 209 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 210 - keyword-independence.json: "maximum + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 211 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 212 - keyword-independence.json: "maximum + unevaluatedItems" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 213 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 214 - keyword-independence.json: "minimum + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 215 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 216 - keyword-independence.json: "minimum + unevaluatedItems" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 217 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 218 - keyword-independence.json: "multipleOf + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 219 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 220 - keyword-independence.json: "multipleOf + unevaluatedItems" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 221 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 222 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 223 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 224 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 225 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 226 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 227 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 228 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 229 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 230 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 231 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 232 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 233 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 234 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 235 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 236 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 237 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 238 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 239 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is not a multiple of 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/multipleOf" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 240 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 241 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 242 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 243 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 244 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 245 - keyword-independence.json: "contains + dependentRequired" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 246 - keyword-independence.json: "contains + dependentRequired" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 247 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 248 - keyword-independence.json: "contains + dependentRequired" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 249 - keyword-independence.json: "contains + dependentSchemas" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 250 - keyword-independence.json: "contains + dependentSchemas" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 251 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 252 - keyword-independence.json: "contains + dependentSchemas" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 253 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 254 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 255 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 256 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 257 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 258 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 259 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 260 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 261 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 262 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 263 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 264 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 265 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 266 - keyword-independence.json: "contains + properties" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 267 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 268 - keyword-independence.json: "contains + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 269 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 270 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 271 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 272 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 273 - keyword-independence.json: "contains + required" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 274 - keyword-independence.json: "contains + required" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 275 - keyword-independence.json: "contains + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 276 - keyword-independence.json: "contains + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 277 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 278 - keyword-independence.json: "contains + unevaluatedProperties" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 279 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 280 - keyword-independence.json: "contains + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 281 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 282 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 283 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 284 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 285 - keyword-independence.json: "dependentRequired + items" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 286 - keyword-independence.json: "dependentRequired + items" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 287 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 288 - keyword-independence.json: "dependentRequired + items" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 289 - keyword-independence.json: "dependentSchemas + items" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 290 - keyword-independence.json: "dependentSchemas + items" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 291 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 292 - keyword-independence.json: "dependentSchemas + items" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 293 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 294 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 295 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 296 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 297 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 298 - keyword-independence.json: "items + minProperties" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 299 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 300 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 301 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 302 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 303 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 304 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 305 - keyword-independence.json: "items + properties" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 306 - keyword-independence.json: "items + properties" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 307 - keyword-independence.json: "items + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 308 - keyword-independence.json: "items + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 309 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 310 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 311 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 312 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 313 - keyword-independence.json: "items + required" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 314 - keyword-independence.json: "items + required" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 315 - keyword-independence.json: "items + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 316 - keyword-independence.json: "items + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 317 - keyword-independence.json: "items + unevaluatedProperties" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 318 - keyword-independence.json: "items + unevaluatedProperties" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 319 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 320 - keyword-independence.json: "items + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 321 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 322 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 323 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 324 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 325 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 326 - keyword-independence.json: "dependentRequired + maxItems" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 327 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 328 - keyword-independence.json: "dependentRequired + maxItems" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 329 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 330 - keyword-independence.json: "dependentSchemas + maxItems" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 331 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 332 - keyword-independence.json: "dependentSchemas + maxItems" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 333 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 334 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 335 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 336 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 337 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 338 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 339 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 340 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 341 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 342 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 343 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 344 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 345 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 346 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 347 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 348 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 349 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 350 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 351 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 352 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 353 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 354 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 355 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 356 - keyword-independence.json: "maxItems + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 357 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 358 - keyword-independence.json: "maxItems + unevaluatedProperties" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 359 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 360 - keyword-independence.json: "maxItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 361 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 362 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 363 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 364 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 365 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 366 - keyword-independence.json: "dependentRequired + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 367 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 368 - keyword-independence.json: "dependentRequired + minItems" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 369 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 370 - keyword-independence.json: "dependentSchemas + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 371 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 372 - keyword-independence.json: "dependentSchemas + minItems" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 373 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 374 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 375 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 376 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 377 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 378 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 379 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 380 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 381 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 382 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 383 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 384 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 385 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 386 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 387 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 388 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 389 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 390 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 391 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 392 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 393 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 394 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 395 - keyword-independence.json: "minItems + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 396 - keyword-independence.json: "minItems + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 397 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 398 - keyword-independence.json: "minItems + unevaluatedProperties" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 399 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 400 - keyword-independence.json: "minItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 401 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 402 - keyword-independence.json: "additionalProperties + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 403 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 404 - keyword-independence.json: "additionalProperties + prefixItems" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 405 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 406 - keyword-independence.json: "dependentRequired + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 407 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 408 - keyword-independence.json: "dependentRequired + prefixItems" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 409 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 410 - keyword-independence.json: "dependentSchemas + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 411 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 412 - keyword-independence.json: "dependentSchemas + prefixItems" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 413 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 414 - keyword-independence.json: "maxProperties + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 415 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 416 - keyword-independence.json: "maxProperties + prefixItems" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 417 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 418 - keyword-independence.json: "minProperties + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 419 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 420 - keyword-independence.json: "minProperties + prefixItems" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 421 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 422 - keyword-independence.json: "patternProperties + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 423 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 424 - keyword-independence.json: "patternProperties + prefixItems" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 425 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 426 - keyword-independence.json: "prefixItems + properties" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 427 - keyword-independence.json: "prefixItems + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 428 - keyword-independence.json: "prefixItems + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 429 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 430 - keyword-independence.json: "prefixItems + propertyNames" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 431 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 432 - keyword-independence.json: "prefixItems + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 433 - keyword-independence.json: "prefixItems + required" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 434 - keyword-independence.json: "prefixItems + required" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 435 - keyword-independence.json: "prefixItems + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 436 - keyword-independence.json: "prefixItems + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 437 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 438 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 439 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 440 - keyword-independence.json: "prefixItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 441 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 442 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 443 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 444 - keyword-independence.json: "additionalProperties + unevaluatedItems" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 445 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 446 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 447 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 448 - keyword-independence.json: "dependentRequired + unevaluatedItems" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 449 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 450 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 451 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 452 - keyword-independence.json: "dependentSchemas + unevaluatedItems" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 453 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 454 - keyword-independence.json: "maxProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 455 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 456 - keyword-independence.json: "maxProperties + unevaluatedItems" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 457 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 458 - keyword-independence.json: "minProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 459 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 460 - keyword-independence.json: "minProperties + unevaluatedItems" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 461 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 462 - keyword-independence.json: "patternProperties + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 463 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 464 - keyword-independence.json: "patternProperties + unevaluatedItems" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 465 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 466 - keyword-independence.json: "properties + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 467 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 468 - keyword-independence.json: "properties + unevaluatedItems" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 469 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 470 - keyword-independence.json: "propertyNames + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 471 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 472 - keyword-independence.json: "propertyNames + unevaluatedItems" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 473 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 474 - keyword-independence.json: "required + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 475 - keyword-independence.json: "required + unevaluatedItems" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 476 - keyword-independence.json: "required + unevaluatedItems" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 477 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 478 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 479 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 480 - keyword-independence.json: "unevaluatedItems + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 481 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 482 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 483 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 484 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 485 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 486 - keyword-independence.json: "dependentRequired + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 487 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 488 - keyword-independence.json: "dependentRequired + uniqueItems" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 489 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 490 - keyword-independence.json: "dependentSchemas + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 491 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 492 - keyword-independence.json: "dependentSchemas + uniqueItems" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 493 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 494 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 495 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 496 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 497 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 498 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 499 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 500 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 501 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 502 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 503 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 504 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 505 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 506 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 507 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 508 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 509 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 510 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 511 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 512 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 513 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 514 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 515 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 516 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 517 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 518 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 519 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 520 - keyword-independence.json: "unevaluatedProperties + uniqueItems" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 521 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 522 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 523 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 524 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 525 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 526 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 527 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 528 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 529 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is not valid against any item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/contains" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 530 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 531 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 532 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 533 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 534 - keyword-independence.json: "items + maxLength" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 535 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 536 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 537 - keyword-independence.json: "items + minLength" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 538 - keyword-independence.json: "items + minLength" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 539 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 540 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 541 - keyword-independence.json: "items + pattern" - "array, items invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/items" 460s # }, 460s # { 460s # "error": "subschema is not valid against all items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/items" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 542 - keyword-independence.json: "items + pattern" - "array, items valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 543 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 544 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 545 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 546 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 547 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 548 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 549 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 550 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 551 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 552 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 553 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has more than 1 item", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 554 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 555 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 556 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 557 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 558 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 559 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 560 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 561 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 562 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 563 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 564 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 565 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "array has fewer than 2 items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 566 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 567 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 568 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 569 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 570 - keyword-independence.json: "maxLength + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 571 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 572 - keyword-independence.json: "maxLength + prefixItems" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 573 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 574 - keyword-independence.json: "minLength + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 575 - keyword-independence.json: "minLength + prefixItems" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 576 - keyword-independence.json: "minLength + prefixItems" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 577 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/prefixItems/0" 460s # }, 460s # { 460s # "error": "not all items are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/prefixItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 578 - keyword-independence.json: "pattern + prefixItems" - "array, prefixItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 579 - keyword-independence.json: "pattern + prefixItems" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 580 - keyword-independence.json: "pattern + prefixItems" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 581 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 582 - keyword-independence.json: "maxLength + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 583 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 584 - keyword-independence.json: "maxLength + unevaluatedItems" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 585 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 586 - keyword-independence.json: "minLength + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 587 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 588 - keyword-independence.json: "minLength + unevaluatedItems" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 589 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional item not permitted", 460s # "instanceLocation": "/0", 460s # "keywordLocation": "/unevaluatedItems" 460s # }, 460s # { 460s # "error": "subschema is not valid against all additional items", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 590 - keyword-independence.json: "pattern + unevaluatedItems" - "array, unevaluatedItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 591 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 592 - keyword-independence.json: "pattern + unevaluatedItems" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 593 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 594 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 595 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 596 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 597 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 598 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 599 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "length is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minLength" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 600 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 601 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "items at indices 0 and 1 are not unique", 460s # "instanceLocation": "", 460s # "keywordLocation": "/uniqueItems" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 602 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 603 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "pattern does not match", 460s # "instanceLocation": "", 460s # "keywordLocation": "/pattern" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 604 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 605 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 606 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 607 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 608 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 609 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 610 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 611 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 612 - keyword-independence.json: "dependentRequired + exclusiveMaximum" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 613 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 614 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 615 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 616 - keyword-independence.json: "dependentSchemas + exclusiveMaximum" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 617 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 618 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 619 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 620 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 621 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 622 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 623 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 624 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 625 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 626 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 627 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 628 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 629 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 630 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 631 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 632 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 633 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 634 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 635 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 636 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 637 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 638 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 639 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 640 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 641 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMaximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 642 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "number, exclusiveMaximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 643 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 644 - keyword-independence.json: "exclusiveMaximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 645 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 646 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 647 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 648 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 649 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 650 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 651 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 652 - keyword-independence.json: "dependentRequired + exclusiveMinimum" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 653 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 654 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 655 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 656 - keyword-independence.json: "dependentSchemas + exclusiveMinimum" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 657 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 658 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 659 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 660 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 661 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 662 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 663 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 664 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 665 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 666 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 667 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 668 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 669 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 670 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 671 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 672 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 673 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 674 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 675 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 676 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 677 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 678 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 679 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 680 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 681 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than or equal to 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/exclusiveMinimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 682 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "number, exclusiveMinimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 683 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 684 - keyword-independence.json: "exclusiveMinimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 685 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 686 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 687 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 688 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 689 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 690 - keyword-independence.json: "dependentRequired + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 691 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 692 - keyword-independence.json: "dependentRequired + maximum" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 693 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 694 - keyword-independence.json: "dependentSchemas + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 695 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 696 - keyword-independence.json: "dependentSchemas + maximum" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 697 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 698 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 699 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 700 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 701 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 702 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 703 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 704 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 705 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 706 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 707 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 708 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 709 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 710 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 711 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 712 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 713 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 714 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 715 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 716 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 717 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 718 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 719 - keyword-independence.json: "maximum + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 720 - keyword-independence.json: "maximum + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 721 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is greater than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maximum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 722 - keyword-independence.json: "maximum + unevaluatedProperties" - "number, maximum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 723 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/unevaluatedProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/unevaluatedProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 724 - keyword-independence.json: "maximum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 725 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 726 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 727 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "additional property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/additionalProperties" 460s # }, 460s # { 460s # "error": "not all additional properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/additionalProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 728 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 729 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 730 - keyword-independence.json: "dependentRequired + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 731 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: y", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentRequired" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 732 - keyword-independence.json: "dependentRequired + minimum" - "object, dependentRequired valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 733 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 734 - keyword-independence.json: "dependentSchemas + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 735 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas/x" 460s # }, 460s # { 460s # "error": "not all dependencies are satisfied", 460s # "instanceLocation": "", 460s # "keywordLocation": "/dependentSchemas" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 736 - keyword-independence.json: "dependentSchemas + minimum" - "object, dependentSchemas valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 737 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 738 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 739 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has more than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/maxProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 740 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 741 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 742 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 743 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object has fewer than 1 property", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 744 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 745 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 746 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 747 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/no", 460s # "keywordLocation": "/patternProperties/no" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/patternProperties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 748 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 749 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 750 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 751 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "property not permitted", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/properties/x" 460s # }, 460s # { 460s # "error": "not all properties are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/properties" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 752 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 753 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 754 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 755 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "subschema is false", 460s # "instanceLocation": "/x", 460s # "keywordLocation": "/propertyNames" 460s # }, 460s # { 460s # "error": "not all property names are valid", 460s # "instanceLocation": "", 460s # "keywordLocation": "/propertyNames" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 756 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 757 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 758 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 759 - keyword-independence.json: "minimum + required" - "object, required invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "object is missing property: x", 460s # "instanceLocation": "", 460s # "keywordLocation": "/required" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 760 - keyword-independence.json: "minimum + required" - "object, required valid" { 460s # result: { 460s # "valid": true 460s # } 460s # short-circuited result: { 460s # "valid": true 460s # } 460s ok 1 - test passes: data is valid: true 460s 1..1 460s } 460s ok 761 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum invalid" { 460s # result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s # short-circuited result: { 460s # "errors": [ 460s # { 460s # "error": "value is less than 2", 460s # "instanceLocation": "", 460s # "keywordLocation": "/minimum" 460s # } 460s # ], 460s # "valid": false 460s # } 460s ok 1 - test passes: data is valid: false 460s 1..1 460s } 460s ok 762 - keyword-independence.json: "minimum + unevaluatedProperties" - "number, minimum valid" { 460s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 763 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 764 - keyword-independence.json: "minimum + unevaluatedProperties" - "object, unevaluatedProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 765 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 766 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 767 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 768 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 769 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 770 - keyword-independence.json: "dependentRequired + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 771 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 772 - keyword-independence.json: "dependentRequired + multipleOf" - "object, dependentRequired valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 773 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 774 - keyword-independence.json: "dependentSchemas + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 775 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 776 - keyword-independence.json: "dependentSchemas + multipleOf" - "object, dependentSchemas valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 777 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 778 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 779 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 780 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 781 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 782 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 783 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 784 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 785 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 786 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 787 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 788 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 789 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 790 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 791 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 792 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 793 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 794 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 795 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 796 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 797 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 798 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 799 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 800 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 801 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 802 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 803 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 804 - keyword-independence.json: "multipleOf + unevaluatedProperties" - "object, unevaluatedProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 805 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 806 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 807 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 808 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 809 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 810 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 811 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 812 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 813 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMaximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 814 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 815 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 816 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 817 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 818 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 819 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 820 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 821 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 822 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 823 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 824 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 825 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than or equal to 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/exclusiveMinimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 826 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 827 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 828 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 829 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 830 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 831 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 832 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 833 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 834 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 835 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 836 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 837 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 838 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 839 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 840 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 841 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 842 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 843 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 844 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 845 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 846 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 847 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 848 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 849 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minimum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 850 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 851 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 852 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 853 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 854 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 855 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 856 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 857 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 858 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 859 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 860 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 861 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/multipleOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 862 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 863 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 864 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 865 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 866 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 867 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 868 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 869 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 870 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 871 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 872 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 873 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/additionalProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 874 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 875 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 876 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 877 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 878 - keyword-independence.json: "dependentRequired + maxLength" - "object, dependentRequired valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 879 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 880 - keyword-independence.json: "dependentRequired + maxLength" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 881 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 882 - keyword-independence.json: "dependentRequired + minLength" - "object, dependentRequired valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 883 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 884 - keyword-independence.json: "dependentRequired + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 885 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: y", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentRequired" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 886 - keyword-independence.json: "dependentRequired + pattern" - "object, dependentRequired valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 887 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 888 - keyword-independence.json: "dependentRequired + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 889 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 890 - keyword-independence.json: "dependentSchemas + maxLength" - "object, dependentSchemas valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 891 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 892 - keyword-independence.json: "dependentSchemas + maxLength" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 893 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 894 - keyword-independence.json: "dependentSchemas + minLength" - "object, dependentSchemas valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 895 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 896 - keyword-independence.json: "dependentSchemas + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 897 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas/x" 461s # }, 461s # { 461s # "error": "not all dependencies are satisfied", 461s # "instanceLocation": "", 461s # "keywordLocation": "/dependentSchemas" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 898 - keyword-independence.json: "dependentSchemas + pattern" - "object, dependentSchemas valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 899 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 900 - keyword-independence.json: "dependentSchemas + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 901 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 902 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 903 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 904 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 905 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 906 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 907 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 908 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 909 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has more than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 910 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 911 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 912 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 913 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 914 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 915 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 916 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 917 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 918 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 919 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 920 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 921 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object has fewer than 1 property", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 922 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 923 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 924 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 925 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 926 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 927 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 928 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 929 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 930 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 931 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 932 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 933 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/no", 461s # "keywordLocation": "/patternProperties/no" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 934 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 935 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 936 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 937 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 938 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 939 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 940 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 941 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 942 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 943 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 944 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 945 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/properties/x" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 946 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 947 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 948 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 949 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 950 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 951 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 952 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 953 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 954 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 955 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 956 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 957 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "subschema is false", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/propertyNames" 461s # }, 461s # { 461s # "error": "not all property names are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/propertyNames" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 958 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 959 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 960 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 961 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 962 - keyword-independence.json: "maxLength + required" - "object, required valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 963 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 964 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 965 - keyword-independence.json: "minLength + required" - "object, required invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 966 - keyword-independence.json: "minLength + required" - "object, required valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 967 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 968 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 969 - keyword-independence.json: "pattern + required" - "object, required invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "object is missing property: x", 461s # "instanceLocation": "", 461s # "keywordLocation": "/required" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 970 - keyword-independence.json: "pattern + required" - "object, required valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 971 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 972 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 973 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 974 - keyword-independence.json: "maxLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 975 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is greater than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/maxLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 976 - keyword-independence.json: "maxLength + unevaluatedProperties" - "string, maxLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 977 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 978 - keyword-independence.json: "minLength + unevaluatedProperties" - "object, unevaluatedProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 979 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "length is less than 2", 461s # "instanceLocation": "", 461s # "keywordLocation": "/minLength" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 980 - keyword-independence.json: "minLength + unevaluatedProperties" - "string, minLength valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 981 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "additional property not permitted", 461s # "instanceLocation": "/x", 461s # "keywordLocation": "/unevaluatedProperties" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 982 - keyword-independence.json: "pattern + unevaluatedProperties" - "object, unevaluatedProperties valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 983 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "pattern does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/pattern" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 984 - keyword-independence.json: "pattern + unevaluatedProperties" - "string, pattern valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s # 461s ok 985 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/const_string", 461s # "keywordLocation": "/properties/const_string/const" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/const_string", 461s # "keywordLocation": "/properties/const_string/const" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 986 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 987 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 988 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/const_number", 461s # "keywordLocation": "/properties/const_number/const" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/const_number", 461s # "keywordLocation": "/properties/const_number/const" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 989 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/enum_string", 461s # "keywordLocation": "/properties/enum_string/enum" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/enum_string", 461s # "keywordLocation": "/properties/enum_string/enum" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 990 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 991 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 992 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/enum_number", 461s # "keywordLocation": "/properties/enum_number/enum" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "/enum_number", 461s # "keywordLocation": "/properties/enum_number/enum" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 993 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "numeric node" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 994 - recursive-dynamic.json: "dynamic $dynamicRef destination (not predictable at schema compile time)" - "integer node" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "integerNode.json#/type", 461s # "error": "got number, not one of object, integer", 461s # "instanceLocation": "/november", 461s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/else/$ref/additionalProperties" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "main.json#/else", 461s # "error": "subschema is not valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/else" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "integerNode.json#/type", 461s # "error": "got number, not one of object, integer", 461s # "instanceLocation": "/november", 461s # "keywordLocation": "/else/$ref/additionalProperties/$dynamicRef/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "inner.json#/additionalProperties", 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/else/$ref/additionalProperties" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "main.json#/else", 461s # "error": "subschema is not valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/else" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 995 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is valid against first definition" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 996 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with $anchors)" - "data is invalid against first definition" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref-and-id1/base.json#/$defs/bigint/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 997 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is valid against first definition" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 998 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination (with uris)" - "data is invalid against first definition" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 999 - 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" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1000 - 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" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 461s # "error": "got string, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf/0/$ref/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 461s # "error": "got string, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf/0/oneOf/0/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf", 461s # "error": "no subschemas are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf/0/oneOf" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 461s # "error": "subschema 0 is not valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/allOf0/#/oneOf/0/type", 461s # "error": "got string, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf/0/$ref/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://localhost:1234/base/#/allOf", 461s # "error": "subschema 0 is not valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/allOf" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1001 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1002 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1003 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1004 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "/ref2/base.json#/$defs/bigint/maximum", 461s # "error": "value is greater than 10", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$ref/maximum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1005 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/enum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value does not match", 461s # "instanceLocation": "", 461s # "keywordLocation": "/enum" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1006 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1007 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "$ref value is not a valid URI reference", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$defs/foo/$ref" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "$ref value is not a valid URI reference", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$defs/foo/$ref" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1008 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "$ref value is not a valid URI reference", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$defs/foo/$ref" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "$ref value is not a valid URI reference", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$defs/foo/$ref" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1009 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1010 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 461s # "error": "got string, not integer", 461s # "instanceLocation": "/list/0", 461s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "/list", 461s # "keywordLocation": "/properties/list/$ref/items" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 461s # "error": "got string, not integer", 461s # "instanceLocation": "/list/0", 461s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/$defs/bar/items", 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "/list", 461s # "keywordLocation": "/properties/list/$ref/items" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1011 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1012 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/items/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/items" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/items/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/items" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1013 - short-circuit.json: "prefixItems does not improperly short-circuit" - "single item is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1014 - short-circuit.json: "prefixItems does not improperly short-circuit" - "second item is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/prefixItems/1/multipleOf" 461s # }, 461s # { 461s # "error": "not all items are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/prefixItems" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/prefixItems/1/multipleOf" 461s # }, 461s # { 461s # "error": "not all items are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/prefixItems" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1015 - short-circuit.json: "items does not improperly short-circuit" - "single additional item is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1016 - short-circuit.json: "items does not improperly short-circuit" - "second additional item is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/2", 461s # "keywordLocation": "/items/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/items" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/2", 461s # "keywordLocation": "/items/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/items" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1017 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "single item is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1018 - short-circuit.json: "unevaluatedItems does not improperly short-circuit" - "second item is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/unevaluatedItems/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all additional items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedItems" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/1", 461s # "keywordLocation": "/unevaluatedItems/multipleOf" 461s # }, 461s # { 461s # "error": "subschema is not valid against all additional items", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedItems" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1019 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1020 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/properties/beta/multipleOf" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/properties/beta/multipleOf" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1021 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1022 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/properties/beta" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/properties/beta" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/properties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1023 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1024 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/patternProperties/^b/multipleOf" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/patternProperties/^b/multipleOf" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1025 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1026 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/patternProperties/^b" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "property not permitted", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/patternProperties/^b" 461s # }, 461s # { 461s # "error": "not all properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/patternProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1027 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1028 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/additionalProperties/multipleOf" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/additionalProperties/multipleOf" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/additionalProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1029 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "single property is valid" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1030 - short-circuit.json: "unevaluatedProperties does not improperly short-circuit" - "second property is invalid" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/unevaluatedProperties/multipleOf" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "value is not a multiple of 2", 461s # "instanceLocation": "/beta", 461s # "keywordLocation": "/unevaluatedProperties/multipleOf" 461s # }, 461s # { 461s # "error": "not all additional properties are valid", 461s # "instanceLocation": "", 461s # "keywordLocation": "/unevaluatedProperties" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1031 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1032 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "got string, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "got string, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1033 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "got object, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "got object, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1034 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "got array, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "got array, not number", 461s # "instanceLocation": "", 461s # "keywordLocation": "/type" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1035 - vocabulary.json: "valid $vocabulary" - "a valid $vocabulary value" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1036 - vocabulary.json: "invalid $vocabulary (wrong specification version), but not until we evaluate with this metaschema" - "invalid $vocabulary (wrong specification version): register this metaschema" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1037 - vocabulary.json: "use schema (invalid $vocabulary) as a metaschema" - "invalid $vocabulary value: wrong specification version" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 461s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 461s # "error": "the first vocabulary (by evaluation_order) must be Core", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary" 461s # }, 461s # { 461s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core", 461s # "error": "\"https://json-schema.org/draft/2019-09/vocab/core\" uses draft2019-09, but the metaschema itself uses draft2020-12", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary/https:~1~1json-schema.org~1draft~12019-09~1vocab~1core" 461s # }, 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema2#/$vocabulary", 461s # "error": "the first vocabulary (by evaluation_order) must be Core", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary" 461s # }, 461s # { 461s # "error": "\"https://mymetaschema2\" is not a valid metaschema", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1038 - vocabulary.json: "invalid $vocabulary (unknown URI), but not until we evaluate with this metaschema" - "invalid $vocabulary (unknown URI): register this metaschema" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1039 - vocabulary.json: "use schema (unknown URI) as a metaschema" - "invalid $vocabulary value: unknown URI" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 461s # "error": "\"https://foo.com\" is not a known vocabulary", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 461s # }, 461s # { 461s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://mymetaschema3#/$vocabulary/https:~1~1foo.com", 461s # "error": "\"https://foo.com\" is not a known vocabulary", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema/$vocabulary/https:~1~1foo.com" 461s # }, 461s # { 461s # "error": "\"https://mymetaschema3\" is not a valid metaschema", 461s # "instanceLocation": "", 461s # "keywordLocation": "/$schema" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1040 - vocabulary.json: "custom metaschema with format-assertion: false" - "custom metaschema is loaded" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1041 - vocabulary.json: "custom metaschema with format-assertion: true" - "custom metaschema is loaded" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1042 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1043 - vocabulary.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 461s # "error": "not a valid ipv4", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 461s # "error": "not a valid ipv4", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1044 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1045 - vocabulary.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 461s # result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 461s # "error": "not a valid ipv4", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 461s # "error": "not a valid ipv4", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1046 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1047 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1048 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date-time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date-time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1049 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date-time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date-time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1050 - optional/format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid date", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s ok 1051 - optional/format-time.json: "validation of time strings" - "valid leap second, Zulu" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1052 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1053 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1054 - optional/format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1055 - optional/format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1056 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1057 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1058 - optional/format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1059 - optional/format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 461s # result: { 461s # "valid": true 461s # } 461s # short-circuited result: { 461s # "valid": true 461s # } 461s ok 1 - test passes: data is valid: true 461s 1..1 461s } 461s ok 1060 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1061 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1062 - optional/format-time.json: "validation of time strings" - "no time offset" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s ok 1063 - optional/format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 461s # result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s # short-circuited result: { 461s # "errors": [ 461s # { 461s # "error": "not a valid time", 461s # "instanceLocation": "", 461s # "keywordLocation": "/format" 461s # } 461s # ], 461s # "valid": false 461s # } 461s ok 1 - test passes: data is valid: false 461s 1..1 461s } 461s # 461s # 461s # generated with: Test::JSON::Schema::Acceptance 1.026 461s # specification version: draft2020-12 461s # using custom test directory: t/additional-tests-draft2020-12 461s # optional tests included: yes 461s # 461s # filename pass todo-fail fail 461s # --------------------------------------------------------------- 461s # anchor.json 2 0 0 461s # annotation-collection.json 10 0 0 461s # badRef.json 3 0 0 461s # dynamicRef.json 7 0 0 461s # faux-buggy-schemas.json 2 0 0 461s # format-duration.json 9 0 0 461s # format-ipv4.json 4 0 0 461s # format-ipv6.json 17 0 0 461s # format-relative-json-pointer.json 7 0 0 461s # formats.json 4 0 0 461s # id.json 6 0 0 461s # integers.json 29 0 0 461s # keyword-independence.json 884 0 0 461s # loose-types-const-enum.json 8 0 0 461s # recursive-dynamic.json 2 0 0 461s # ref-and-id.json 6 0 0 461s # ref.json 10 0 0 461s # short-circuit.json 20 0 0 461s # unknownKeyword.json 4 0 0 461s # vocabulary.json 11 0 0 461s # optional/format-date-time.json 4 0 0 461s # optional/format-date.json 1 0 0 461s # optional/format-time.json 13 0 0 461s # --------------------------------------------------------------- 461s # TOTAL 1063 0 0 461s # 461s # Congratulations, all non-optional tests are passing! 461s # 461s ok 1064 - no leaks in the main evaluator object 461s ok 1065 - no leaks in the short-circuiting evaluator object 461s ok 1066 - got unsupported keyword warnings 461s 1..1066 461s ok 464s t/additional-tests-draft7.t ............. 464s # AUTHOR_TESTING: 464s # AUTOMATED_TESTING: 1 464s # EXTENDED_TESTING: 464s # NO_TODO: 464s # TEST_DIR: 464s # NO_SHORT_CIRCUIT: 464s # 464s # running tests in /tmp/autopkgtest.KTsMu3/autopkgtest_tmp/smokeJpyEyJ/t/additional-tests-draft7 against draft7... 464s # 464s ok 1 - badRef.json: "good references in schemas" - "this data is never used" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 2 - badRef.json: "bad $ref in schema: not a valid anchor fragment" - "this data is never used" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/then/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/then/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 3 - badRef.json: "bad $ref in schema: not a valid json pointer fragment" - "this data is never used" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/then/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/then/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 4 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match the type checks" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 5 - faux-buggy-schemas.json: "identifiers in non-schemas that look like schemas" - "match none of the options" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/0/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/1/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/2/const" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/3/enum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 464s # "error": "no subschemas are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/0/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/0/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/1/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/1/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf/2/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/2/const" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/enum.json#/enum", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf/3/enum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/faux.json#/anyOf", 464s # "error": "no subschemas are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/anyOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 6 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, as they are treated as octal values" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 7 - format-ipv4.json: "validation of ipv4 strings" - "leading zeroes should be rejected, even if not a valid octal value" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 8 - format-ipv4.json: "validation of ipv4 strings" - "value without leading zero is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 9 - format-ipv4.json: "validation of ipv4 strings" - "non-ascii digits should be rejected" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid ipv4", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 10 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with empty json-pointer" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 11 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with one-char json-pointer" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 12 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer with longer json-pointer" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 13 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "non-negative-integer \#" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 14 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "\#\# is not a valid json-pointer" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 15 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus json-pointer" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 16 - format-relative-json-pointer.json: "validation of relative-json-pointer strings" - "zero cannot be followed by other digits, plus octothorpe" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid relative-json-pointer", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 17 - id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 18 - id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 19 - id.json: "non-schema object containing an anchor property" - "skip traversing definition for a valid result" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 20 - id.json: "non-schema object containing an anchor property" - "const at const_not_anchor does not match" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 21 - id.json: "'' not permitted as $id" - "schema would pass without $id" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 22 - id.json: "'' not permitted as $id" - "schema would fail even without $id" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 23 - id.json: "'\#' not permitted as $id" - "schema would pass without $id" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 24 - id.json: "'\#' not permitted as $id" - "schema would fail even without $id" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$id cannot be empty", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 25 - id.json: "bad anchor syntax" - "draft7 $id passes through to $anchor" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$id value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$id value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/$id" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 26 - integers.json: "type checks" - "beyond int64 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 27 - integers.json: "type checks" - "int64 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 28 - integers.json: "type checks" - "beyond int32 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 29 - integers.json: "type checks" - "int32 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 30 - integers.json: "type checks" - "zero" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 31 - integers.json: "type checks" - "int32 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 32 - integers.json: "type checks" - "beyond int32 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 33 - integers.json: "type checks" - "upper int64 boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 34 - integers.json: "type checks" - "beyond int64 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 35 - integers.json: "int32 range checks" - "beyond lower boundary" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than -2147483648", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than -2147483648", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 36 - integers.json: "int32 range checks" - "lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 37 - integers.json: "int32 range checks" - "zero" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 38 - integers.json: "int32 range checks" - "upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 39 - integers.json: "int32 range checks" - "beyond upper boundary" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2147483647", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2147483647", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 40 - integers.json: "int64 range checks" - "beyond lower boundary" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than -9223372036854775808", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than -9223372036854775808", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 41 - integers.json: "int64 range checks" - "lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 42 - integers.json: "int64 range checks" - "zero" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 43 - integers.json: "int64 range checks" - "upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 44 - integers.json: "int64 range checks" - "beyond upper boundary" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 9223372036854775807", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 9223372036854775807", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 45 - integers.json: "equality checks" - "beyond int64 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 46 - integers.json: "equality checks" - "int64 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 47 - integers.json: "equality checks" - "beyond int32 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 48 - integers.json: "equality checks" - "int32 lower boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 49 - integers.json: "equality checks" - "zero" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 50 - integers.json: "equality checks" - "one" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/enum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/enum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 51 - integers.json: "equality checks" - "int32 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 52 - integers.json: "equality checks" - "beyond int32 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 53 - integers.json: "equality checks" - "int64 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 54 - integers.json: "equality checks" - "beyond int64 upper boundary" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s # 464s ok 55 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 56 - keyword-independence.json: "contains + exclusiveMaximum" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 57 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 58 - keyword-independence.json: "contains + exclusiveMaximum" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 59 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 60 - keyword-independence.json: "contains + exclusiveMinimum" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 61 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 62 - keyword-independence.json: "contains + exclusiveMinimum" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 63 - keyword-independence.json: "contains + maximum" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 64 - keyword-independence.json: "contains + maximum" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 65 - keyword-independence.json: "contains + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 66 - keyword-independence.json: "contains + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 67 - keyword-independence.json: "contains + minimum" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 68 - keyword-independence.json: "contains + minimum" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 69 - keyword-independence.json: "contains + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 70 - keyword-independence.json: "contains + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 71 - keyword-independence.json: "contains + multipleOf" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 72 - keyword-independence.json: "contains + multipleOf" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 73 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 74 - keyword-independence.json: "contains + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 75 - keyword-independence.json: "exclusiveMaximum + items" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 76 - keyword-independence.json: "exclusiveMaximum + items" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 77 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 78 - keyword-independence.json: "exclusiveMaximum + items" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 79 - keyword-independence.json: "exclusiveMinimum + items" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 80 - keyword-independence.json: "exclusiveMinimum + items" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 81 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 82 - keyword-independence.json: "exclusiveMinimum + items" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 83 - keyword-independence.json: "items + maximum" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 84 - keyword-independence.json: "items + maximum" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 85 - keyword-independence.json: "items + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 86 - keyword-independence.json: "items + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 87 - keyword-independence.json: "items + minimum" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 88 - keyword-independence.json: "items + minimum" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 89 - keyword-independence.json: "items + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 90 - keyword-independence.json: "items + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 91 - keyword-independence.json: "items + multipleOf" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 92 - keyword-independence.json: "items + multipleOf" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 93 - keyword-independence.json: "items + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 94 - keyword-independence.json: "items + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 95 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 96 - keyword-independence.json: "exclusiveMaximum + maxItems" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 97 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 98 - keyword-independence.json: "exclusiveMaximum + maxItems" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 99 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 100 - keyword-independence.json: "exclusiveMinimum + maxItems" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 101 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 102 - keyword-independence.json: "exclusiveMinimum + maxItems" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 103 - keyword-independence.json: "maxItems + maximum" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 104 - keyword-independence.json: "maxItems + maximum" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 105 - keyword-independence.json: "maxItems + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 106 - keyword-independence.json: "maxItems + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 107 - keyword-independence.json: "maxItems + minimum" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 108 - keyword-independence.json: "maxItems + minimum" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 109 - keyword-independence.json: "maxItems + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 110 - keyword-independence.json: "maxItems + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 111 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 112 - keyword-independence.json: "maxItems + multipleOf" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 113 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 114 - keyword-independence.json: "maxItems + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 115 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 116 - keyword-independence.json: "exclusiveMaximum + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 117 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 118 - keyword-independence.json: "exclusiveMaximum + minItems" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 119 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 120 - keyword-independence.json: "exclusiveMinimum + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 121 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 122 - keyword-independence.json: "exclusiveMinimum + minItems" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 123 - keyword-independence.json: "maximum + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 124 - keyword-independence.json: "maximum + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 125 - keyword-independence.json: "maximum + minItems" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 126 - keyword-independence.json: "maximum + minItems" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 127 - keyword-independence.json: "minItems + minimum" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 128 - keyword-independence.json: "minItems + minimum" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 129 - keyword-independence.json: "minItems + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 130 - keyword-independence.json: "minItems + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 131 - keyword-independence.json: "minItems + multipleOf" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 132 - keyword-independence.json: "minItems + multipleOf" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 133 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 134 - keyword-independence.json: "minItems + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 135 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 136 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 137 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 138 - keyword-independence.json: "exclusiveMaximum + uniqueItems" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 139 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 140 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 141 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 142 - keyword-independence.json: "exclusiveMinimum + uniqueItems" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 143 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 144 - keyword-independence.json: "maximum + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 145 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 146 - keyword-independence.json: "maximum + uniqueItems" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 147 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 148 - keyword-independence.json: "minimum + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 149 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 150 - keyword-independence.json: "minimum + uniqueItems" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 151 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 152 - keyword-independence.json: "multipleOf + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 153 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 154 - keyword-independence.json: "multipleOf + uniqueItems" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 155 - keyword-independence.json: "additionalProperties + contains" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 156 - keyword-independence.json: "additionalProperties + contains" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 157 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 158 - keyword-independence.json: "additionalProperties + contains" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 159 - keyword-independence.json: "contains + dependencies" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 160 - keyword-independence.json: "contains + dependencies" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 161 - keyword-independence.json: "contains + dependencies" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 162 - keyword-independence.json: "contains + dependencies" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 163 - keyword-independence.json: "contains + maxProperties" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 164 - keyword-independence.json: "contains + maxProperties" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 165 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 166 - keyword-independence.json: "contains + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 167 - keyword-independence.json: "contains + minProperties" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 168 - keyword-independence.json: "contains + minProperties" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 169 - keyword-independence.json: "contains + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 170 - keyword-independence.json: "contains + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 171 - keyword-independence.json: "contains + patternProperties" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 172 - keyword-independence.json: "contains + patternProperties" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 173 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 174 - keyword-independence.json: "contains + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 175 - keyword-independence.json: "contains + properties" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 176 - keyword-independence.json: "contains + properties" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 177 - keyword-independence.json: "contains + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 178 - keyword-independence.json: "contains + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 179 - keyword-independence.json: "contains + propertyNames" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 180 - keyword-independence.json: "contains + propertyNames" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 181 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 182 - keyword-independence.json: "contains + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 183 - keyword-independence.json: "contains + required" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 184 - keyword-independence.json: "contains + required" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 185 - keyword-independence.json: "contains + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 186 - keyword-independence.json: "contains + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 187 - keyword-independence.json: "additionalProperties + items" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 188 - keyword-independence.json: "additionalProperties + items" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 189 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 190 - keyword-independence.json: "additionalProperties + items" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 191 - keyword-independence.json: "dependencies + items" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 192 - keyword-independence.json: "dependencies + items" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 193 - keyword-independence.json: "dependencies + items" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 194 - keyword-independence.json: "dependencies + items" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 195 - keyword-independence.json: "items + maxProperties" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 196 - keyword-independence.json: "items + maxProperties" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 197 - keyword-independence.json: "items + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 198 - keyword-independence.json: "items + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 199 - keyword-independence.json: "items + minProperties" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 200 - keyword-independence.json: "items + minProperties" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 201 - keyword-independence.json: "items + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 202 - keyword-independence.json: "items + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 203 - keyword-independence.json: "items + patternProperties" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 204 - keyword-independence.json: "items + patternProperties" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 205 - keyword-independence.json: "items + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 206 - keyword-independence.json: "items + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 207 - keyword-independence.json: "items + properties" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 208 - keyword-independence.json: "items + properties" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 209 - keyword-independence.json: "items + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 210 - keyword-independence.json: "items + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 211 - keyword-independence.json: "items + propertyNames" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 212 - keyword-independence.json: "items + propertyNames" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 213 - keyword-independence.json: "items + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 214 - keyword-independence.json: "items + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 215 - keyword-independence.json: "items + required" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 216 - keyword-independence.json: "items + required" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 217 - keyword-independence.json: "items + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 218 - keyword-independence.json: "items + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 219 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 220 - keyword-independence.json: "additionalProperties + maxItems" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 221 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 222 - keyword-independence.json: "additionalProperties + maxItems" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 223 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 224 - keyword-independence.json: "dependencies + maxItems" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 225 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 226 - keyword-independence.json: "dependencies + maxItems" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 227 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 228 - keyword-independence.json: "maxItems + maxProperties" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 229 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 230 - keyword-independence.json: "maxItems + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 231 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 232 - keyword-independence.json: "maxItems + minProperties" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 233 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 234 - keyword-independence.json: "maxItems + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 235 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 236 - keyword-independence.json: "maxItems + patternProperties" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 237 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 238 - keyword-independence.json: "maxItems + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 239 - keyword-independence.json: "maxItems + properties" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 240 - keyword-independence.json: "maxItems + properties" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 241 - keyword-independence.json: "maxItems + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 242 - keyword-independence.json: "maxItems + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 243 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 244 - keyword-independence.json: "maxItems + propertyNames" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 245 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 246 - keyword-independence.json: "maxItems + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 247 - keyword-independence.json: "maxItems + required" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 248 - keyword-independence.json: "maxItems + required" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 249 - keyword-independence.json: "maxItems + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 250 - keyword-independence.json: "maxItems + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 251 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 252 - keyword-independence.json: "additionalProperties + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 253 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 254 - keyword-independence.json: "additionalProperties + minItems" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 255 - keyword-independence.json: "dependencies + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 256 - keyword-independence.json: "dependencies + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 257 - keyword-independence.json: "dependencies + minItems" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 258 - keyword-independence.json: "dependencies + minItems" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 259 - keyword-independence.json: "maxProperties + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 260 - keyword-independence.json: "maxProperties + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 261 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 262 - keyword-independence.json: "maxProperties + minItems" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 263 - keyword-independence.json: "minItems + minProperties" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 264 - keyword-independence.json: "minItems + minProperties" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 265 - keyword-independence.json: "minItems + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 266 - keyword-independence.json: "minItems + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 267 - keyword-independence.json: "minItems + patternProperties" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 268 - keyword-independence.json: "minItems + patternProperties" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 269 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 270 - keyword-independence.json: "minItems + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 271 - keyword-independence.json: "minItems + properties" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 272 - keyword-independence.json: "minItems + properties" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 273 - keyword-independence.json: "minItems + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 274 - keyword-independence.json: "minItems + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 275 - keyword-independence.json: "minItems + propertyNames" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 276 - keyword-independence.json: "minItems + propertyNames" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 277 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 278 - keyword-independence.json: "minItems + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 279 - keyword-independence.json: "minItems + required" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 280 - keyword-independence.json: "minItems + required" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 281 - keyword-independence.json: "minItems + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 282 - keyword-independence.json: "minItems + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 283 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 284 - keyword-independence.json: "additionalProperties + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 285 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 286 - keyword-independence.json: "additionalProperties + uniqueItems" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 287 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 288 - keyword-independence.json: "dependencies + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 289 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 290 - keyword-independence.json: "dependencies + uniqueItems" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 291 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 292 - keyword-independence.json: "maxProperties + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 293 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 294 - keyword-independence.json: "maxProperties + uniqueItems" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 295 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 296 - keyword-independence.json: "minProperties + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 297 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 298 - keyword-independence.json: "minProperties + uniqueItems" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 299 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 300 - keyword-independence.json: "patternProperties + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 301 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 302 - keyword-independence.json: "patternProperties + uniqueItems" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 303 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 304 - keyword-independence.json: "properties + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 305 - keyword-independence.json: "properties + uniqueItems" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 306 - keyword-independence.json: "properties + uniqueItems" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 307 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 308 - keyword-independence.json: "propertyNames + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 309 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 310 - keyword-independence.json: "propertyNames + uniqueItems" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 311 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 312 - keyword-independence.json: "required + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 313 - keyword-independence.json: "required + uniqueItems" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 314 - keyword-independence.json: "required + uniqueItems" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 315 - keyword-independence.json: "contains + maxLength" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 316 - keyword-independence.json: "contains + maxLength" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 317 - keyword-independence.json: "contains + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 318 - keyword-independence.json: "contains + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 319 - keyword-independence.json: "contains + minLength" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 320 - keyword-independence.json: "contains + minLength" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 321 - keyword-independence.json: "contains + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 322 - keyword-independence.json: "contains + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 323 - keyword-independence.json: "contains + pattern" - "array, contains invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is not valid against any item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/contains" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 324 - keyword-independence.json: "contains + pattern" - "array, contains valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 325 - keyword-independence.json: "contains + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 326 - keyword-independence.json: "contains + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 327 - keyword-independence.json: "items + maxLength" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 328 - keyword-independence.json: "items + maxLength" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 329 - keyword-independence.json: "items + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 330 - keyword-independence.json: "items + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 331 - keyword-independence.json: "items + minLength" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 332 - keyword-independence.json: "items + minLength" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 333 - keyword-independence.json: "items + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 334 - keyword-independence.json: "items + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 335 - keyword-independence.json: "items + pattern" - "array, items invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "item not permitted", 464s # "instanceLocation": "/0", 464s # "keywordLocation": "/items/0" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 336 - keyword-independence.json: "items + pattern" - "array, items valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 337 - keyword-independence.json: "items + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 338 - keyword-independence.json: "items + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 339 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 340 - keyword-independence.json: "maxItems + maxLength" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 341 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 342 - keyword-independence.json: "maxItems + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 343 - keyword-independence.json: "maxItems + minLength" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 344 - keyword-independence.json: "maxItems + minLength" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 345 - keyword-independence.json: "maxItems + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 346 - keyword-independence.json: "maxItems + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 347 - keyword-independence.json: "maxItems + pattern" - "array, maxItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has more than 1 item", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 348 - keyword-independence.json: "maxItems + pattern" - "array, maxItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 349 - keyword-independence.json: "maxItems + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 350 - keyword-independence.json: "maxItems + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 351 - keyword-independence.json: "maxLength + minItems" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 352 - keyword-independence.json: "maxLength + minItems" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 353 - keyword-independence.json: "maxLength + minItems" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 354 - keyword-independence.json: "maxLength + minItems" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 355 - keyword-independence.json: "minItems + minLength" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 356 - keyword-independence.json: "minItems + minLength" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 357 - keyword-independence.json: "minItems + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 358 - keyword-independence.json: "minItems + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 359 - keyword-independence.json: "minItems + pattern" - "array, minItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "array has fewer than 2 items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 360 - keyword-independence.json: "minItems + pattern" - "array, minItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 361 - keyword-independence.json: "minItems + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 362 - keyword-independence.json: "minItems + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 363 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 364 - keyword-independence.json: "maxLength + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 365 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 366 - keyword-independence.json: "maxLength + uniqueItems" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 367 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 368 - keyword-independence.json: "minLength + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 369 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 370 - keyword-independence.json: "minLength + uniqueItems" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 371 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "items at indices 0 and 1 are not unique", 464s # "instanceLocation": "", 464s # "keywordLocation": "/uniqueItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 372 - keyword-independence.json: "pattern + uniqueItems" - "array, uniqueItems valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 373 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 374 - keyword-independence.json: "pattern + uniqueItems" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 375 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 376 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 377 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 378 - keyword-independence.json: "additionalProperties + exclusiveMaximum" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 379 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 380 - keyword-independence.json: "dependencies + exclusiveMaximum" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 381 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 382 - keyword-independence.json: "dependencies + exclusiveMaximum" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 383 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 384 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 385 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 386 - keyword-independence.json: "exclusiveMaximum + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 387 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 388 - keyword-independence.json: "exclusiveMaximum + minProperties" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 389 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 390 - keyword-independence.json: "exclusiveMaximum + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 391 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 392 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 393 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 394 - keyword-independence.json: "exclusiveMaximum + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 395 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 396 - keyword-independence.json: "exclusiveMaximum + properties" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 397 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 398 - keyword-independence.json: "exclusiveMaximum + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 399 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 400 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 401 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 402 - keyword-independence.json: "exclusiveMaximum + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 403 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 404 - keyword-independence.json: "exclusiveMaximum + required" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 405 - keyword-independence.json: "exclusiveMaximum + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 406 - keyword-independence.json: "exclusiveMaximum + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 407 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 408 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 409 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 410 - keyword-independence.json: "additionalProperties + exclusiveMinimum" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 411 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 412 - keyword-independence.json: "dependencies + exclusiveMinimum" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 413 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 414 - keyword-independence.json: "dependencies + exclusiveMinimum" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 415 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 416 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 417 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 418 - keyword-independence.json: "exclusiveMinimum + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 419 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 420 - keyword-independence.json: "exclusiveMinimum + minProperties" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 421 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 422 - keyword-independence.json: "exclusiveMinimum + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 423 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 424 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 425 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 426 - keyword-independence.json: "exclusiveMinimum + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 427 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 428 - keyword-independence.json: "exclusiveMinimum + properties" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 429 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 430 - keyword-independence.json: "exclusiveMinimum + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 431 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 432 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 433 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 434 - keyword-independence.json: "exclusiveMinimum + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 435 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 436 - keyword-independence.json: "exclusiveMinimum + required" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 437 - keyword-independence.json: "exclusiveMinimum + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 438 - keyword-independence.json: "exclusiveMinimum + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 439 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 440 - keyword-independence.json: "additionalProperties + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 441 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 442 - keyword-independence.json: "additionalProperties + maximum" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 443 - keyword-independence.json: "dependencies + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 444 - keyword-independence.json: "dependencies + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 445 - keyword-independence.json: "dependencies + maximum" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 446 - keyword-independence.json: "dependencies + maximum" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 447 - keyword-independence.json: "maxProperties + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 448 - keyword-independence.json: "maxProperties + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 449 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 450 - keyword-independence.json: "maxProperties + maximum" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 451 - keyword-independence.json: "maximum + minProperties" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 452 - keyword-independence.json: "maximum + minProperties" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 453 - keyword-independence.json: "maximum + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 454 - keyword-independence.json: "maximum + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 455 - keyword-independence.json: "maximum + patternProperties" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 456 - keyword-independence.json: "maximum + patternProperties" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 457 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 458 - keyword-independence.json: "maximum + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 459 - keyword-independence.json: "maximum + properties" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 460 - keyword-independence.json: "maximum + properties" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 461 - keyword-independence.json: "maximum + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 462 - keyword-independence.json: "maximum + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 463 - keyword-independence.json: "maximum + propertyNames" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 464 - keyword-independence.json: "maximum + propertyNames" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 465 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 466 - keyword-independence.json: "maximum + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 467 - keyword-independence.json: "maximum + required" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 468 - keyword-independence.json: "maximum + required" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 469 - keyword-independence.json: "maximum + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 470 - keyword-independence.json: "maximum + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 471 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 472 - keyword-independence.json: "additionalProperties + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 473 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 474 - keyword-independence.json: "additionalProperties + minimum" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 475 - keyword-independence.json: "dependencies + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 476 - keyword-independence.json: "dependencies + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 477 - keyword-independence.json: "dependencies + minimum" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 478 - keyword-independence.json: "dependencies + minimum" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 479 - keyword-independence.json: "maxProperties + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 480 - keyword-independence.json: "maxProperties + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 481 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 482 - keyword-independence.json: "maxProperties + minimum" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 483 - keyword-independence.json: "minProperties + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 484 - keyword-independence.json: "minProperties + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 485 - keyword-independence.json: "minProperties + minimum" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 486 - keyword-independence.json: "minProperties + minimum" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 487 - keyword-independence.json: "minimum + patternProperties" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 488 - keyword-independence.json: "minimum + patternProperties" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 489 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 490 - keyword-independence.json: "minimum + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 491 - keyword-independence.json: "minimum + properties" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 492 - keyword-independence.json: "minimum + properties" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 493 - keyword-independence.json: "minimum + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 494 - keyword-independence.json: "minimum + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 495 - keyword-independence.json: "minimum + propertyNames" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 496 - keyword-independence.json: "minimum + propertyNames" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 497 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 498 - keyword-independence.json: "minimum + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 499 - keyword-independence.json: "minimum + required" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 500 - keyword-independence.json: "minimum + required" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 501 - keyword-independence.json: "minimum + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 502 - keyword-independence.json: "minimum + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 503 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 504 - keyword-independence.json: "additionalProperties + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 505 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 506 - keyword-independence.json: "additionalProperties + multipleOf" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 507 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 508 - keyword-independence.json: "dependencies + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 509 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 510 - keyword-independence.json: "dependencies + multipleOf" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 511 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 512 - keyword-independence.json: "maxProperties + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 513 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 514 - keyword-independence.json: "maxProperties + multipleOf" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 515 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 516 - keyword-independence.json: "minProperties + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 517 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 518 - keyword-independence.json: "minProperties + multipleOf" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 519 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 520 - keyword-independence.json: "multipleOf + patternProperties" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 521 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 522 - keyword-independence.json: "multipleOf + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 523 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 524 - keyword-independence.json: "multipleOf + properties" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 525 - keyword-independence.json: "multipleOf + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 526 - keyword-independence.json: "multipleOf + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 527 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 528 - keyword-independence.json: "multipleOf + propertyNames" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 529 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 530 - keyword-independence.json: "multipleOf + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 531 - keyword-independence.json: "multipleOf + required" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 532 - keyword-independence.json: "multipleOf + required" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 533 - keyword-independence.json: "multipleOf + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 534 - keyword-independence.json: "multipleOf + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 535 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 536 - keyword-independence.json: "exclusiveMaximum + maxLength" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 537 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 538 - keyword-independence.json: "exclusiveMaximum + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 539 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 540 - keyword-independence.json: "exclusiveMaximum + minLength" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 541 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 542 - keyword-independence.json: "exclusiveMaximum + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 543 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMaximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 544 - keyword-independence.json: "exclusiveMaximum + pattern" - "number, exclusiveMaximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 545 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 546 - keyword-independence.json: "exclusiveMaximum + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 547 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 548 - keyword-independence.json: "exclusiveMinimum + maxLength" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 549 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 550 - keyword-independence.json: "exclusiveMinimum + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 551 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 552 - keyword-independence.json: "exclusiveMinimum + minLength" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 553 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 554 - keyword-independence.json: "exclusiveMinimum + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 555 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than or equal to 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/exclusiveMinimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 556 - keyword-independence.json: "exclusiveMinimum + pattern" - "number, exclusiveMinimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 557 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 558 - keyword-independence.json: "exclusiveMinimum + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 559 - keyword-independence.json: "maxLength + maximum" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 560 - keyword-independence.json: "maxLength + maximum" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 561 - keyword-independence.json: "maxLength + maximum" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 562 - keyword-independence.json: "maxLength + maximum" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 563 - keyword-independence.json: "maximum + minLength" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 564 - keyword-independence.json: "maximum + minLength" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 565 - keyword-independence.json: "maximum + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 566 - keyword-independence.json: "maximum + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 567 - keyword-independence.json: "maximum + pattern" - "number, maximum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maximum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 568 - keyword-independence.json: "maximum + pattern" - "number, maximum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 569 - keyword-independence.json: "maximum + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 570 - keyword-independence.json: "maximum + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 571 - keyword-independence.json: "maxLength + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 572 - keyword-independence.json: "maxLength + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 573 - keyword-independence.json: "maxLength + minimum" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 574 - keyword-independence.json: "maxLength + minimum" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 575 - keyword-independence.json: "minLength + minimum" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 576 - keyword-independence.json: "minLength + minimum" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 577 - keyword-independence.json: "minLength + minimum" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 578 - keyword-independence.json: "minLength + minimum" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 579 - keyword-independence.json: "minimum + pattern" - "number, minimum invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minimum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 580 - keyword-independence.json: "minimum + pattern" - "number, minimum valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 581 - keyword-independence.json: "minimum + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 582 - keyword-independence.json: "minimum + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 583 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 584 - keyword-independence.json: "maxLength + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 585 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 586 - keyword-independence.json: "maxLength + multipleOf" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 587 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 588 - keyword-independence.json: "minLength + multipleOf" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 589 - keyword-independence.json: "minLength + multipleOf" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 590 - keyword-independence.json: "minLength + multipleOf" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 591 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/multipleOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 592 - keyword-independence.json: "multipleOf + pattern" - "number, multipleOf valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 593 - keyword-independence.json: "multipleOf + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 594 - keyword-independence.json: "multipleOf + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 595 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 596 - keyword-independence.json: "additionalProperties + maxLength" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 597 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 598 - keyword-independence.json: "additionalProperties + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 599 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 600 - keyword-independence.json: "additionalProperties + minLength" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 601 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 602 - keyword-independence.json: "additionalProperties + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 603 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 604 - keyword-independence.json: "additionalProperties + pattern" - "object, additionalProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 605 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 606 - keyword-independence.json: "additionalProperties + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 607 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 608 - keyword-independence.json: "dependencies + maxLength" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 609 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 610 - keyword-independence.json: "dependencies + maxLength" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 611 - keyword-independence.json: "dependencies + minLength" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 612 - keyword-independence.json: "dependencies + minLength" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 613 - keyword-independence.json: "dependencies + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 614 - keyword-independence.json: "dependencies + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 615 - keyword-independence.json: "dependencies + pattern" - "object, dependencies invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies/x" 464s # }, 464s # { 464s # "error": "not all dependencies are satisfied", 464s # "instanceLocation": "", 464s # "keywordLocation": "/dependencies" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 616 - keyword-independence.json: "dependencies + pattern" - "object, dependencies valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 617 - keyword-independence.json: "dependencies + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 618 - keyword-independence.json: "dependencies + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 619 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 620 - keyword-independence.json: "maxLength + maxProperties" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 621 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 622 - keyword-independence.json: "maxLength + maxProperties" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 623 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 624 - keyword-independence.json: "maxProperties + minLength" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 625 - keyword-independence.json: "maxProperties + minLength" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 626 - keyword-independence.json: "maxProperties + minLength" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 627 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has more than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 628 - keyword-independence.json: "maxProperties + pattern" - "object, maxProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 629 - keyword-independence.json: "maxProperties + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 630 - keyword-independence.json: "maxProperties + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 631 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 632 - keyword-independence.json: "maxLength + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 633 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 634 - keyword-independence.json: "maxLength + minProperties" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 635 - keyword-independence.json: "minLength + minProperties" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 636 - keyword-independence.json: "minLength + minProperties" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 637 - keyword-independence.json: "minLength + minProperties" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 638 - keyword-independence.json: "minLength + minProperties" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 639 - keyword-independence.json: "minProperties + pattern" - "object, minProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object has fewer than 1 property", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 640 - keyword-independence.json: "minProperties + pattern" - "object, minProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 641 - keyword-independence.json: "minProperties + pattern" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 642 - keyword-independence.json: "minProperties + pattern" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 643 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 644 - keyword-independence.json: "maxLength + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 645 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 646 - keyword-independence.json: "maxLength + patternProperties" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 647 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 648 - keyword-independence.json: "minLength + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 649 - keyword-independence.json: "minLength + patternProperties" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 650 - keyword-independence.json: "minLength + patternProperties" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 651 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/no", 464s # "keywordLocation": "/patternProperties/no" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 652 - keyword-independence.json: "pattern + patternProperties" - "object, patternProperties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 653 - keyword-independence.json: "pattern + patternProperties" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 654 - keyword-independence.json: "pattern + patternProperties" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 655 - keyword-independence.json: "maxLength + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 656 - keyword-independence.json: "maxLength + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 657 - keyword-independence.json: "maxLength + properties" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 658 - keyword-independence.json: "maxLength + properties" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 659 - keyword-independence.json: "minLength + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 660 - keyword-independence.json: "minLength + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 661 - keyword-independence.json: "minLength + properties" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 662 - keyword-independence.json: "minLength + properties" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 663 - keyword-independence.json: "pattern + properties" - "object, properties invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/properties/x" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 664 - keyword-independence.json: "pattern + properties" - "object, properties valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 665 - keyword-independence.json: "pattern + properties" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 666 - keyword-independence.json: "pattern + properties" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 667 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 668 - keyword-independence.json: "maxLength + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 669 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 670 - keyword-independence.json: "maxLength + propertyNames" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 671 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 672 - keyword-independence.json: "minLength + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 673 - keyword-independence.json: "minLength + propertyNames" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 674 - keyword-independence.json: "minLength + propertyNames" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 675 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "subschema is false", 464s # "instanceLocation": "/x", 464s # "keywordLocation": "/propertyNames" 464s # }, 464s # { 464s # "error": "not all property names are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/propertyNames" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 676 - keyword-independence.json: "pattern + propertyNames" - "object, propertyNames valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 677 - keyword-independence.json: "pattern + propertyNames" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 678 - keyword-independence.json: "pattern + propertyNames" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 679 - keyword-independence.json: "maxLength + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 680 - keyword-independence.json: "maxLength + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 681 - keyword-independence.json: "maxLength + required" - "string, maxLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is greater than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/maxLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 682 - keyword-independence.json: "maxLength + required" - "string, maxLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 683 - keyword-independence.json: "minLength + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 684 - keyword-independence.json: "minLength + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 685 - keyword-independence.json: "minLength + required" - "string, minLength invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "length is less than 2", 464s # "instanceLocation": "", 464s # "keywordLocation": "/minLength" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 686 - keyword-independence.json: "minLength + required" - "string, minLength valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 687 - keyword-independence.json: "pattern + required" - "object, required invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "object is missing property: x", 464s # "instanceLocation": "", 464s # "keywordLocation": "/required" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 688 - keyword-independence.json: "pattern + required" - "object, required valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 689 - keyword-independence.json: "pattern + required" - "string, pattern invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "pattern does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/pattern" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 690 - keyword-independence.json: "pattern + required" - "string, pattern valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s # 464s ok 691 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does not match string" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/const_string", 464s # "keywordLocation": "/properties/const_string/const" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/const_string", 464s # "keywordLocation": "/properties/const_string/const" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 692 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const numeric value does match number" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 693 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value matches string" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 694 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "const string value does not match number" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/const_number", 464s # "keywordLocation": "/properties/const_number/const" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/const_number", 464s # "keywordLocation": "/properties/const_number/const" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 695 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does not match string" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/enum_string", 464s # "keywordLocation": "/properties/enum_string/enum" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/enum_string", 464s # "keywordLocation": "/properties/enum_string/enum" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 696 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum numeric value does match number" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 697 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value matches string" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 698 - loose-types-const-enum.json: "type can be inferred from const and enum values" - "enum string value does not match number" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/enum_number", 464s # "keywordLocation": "/properties/enum_number/enum" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "/enum_number", 464s # "keywordLocation": "/properties/enum_number/enum" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 699 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "skip traversing definition for a valid result" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 700 - not-an-anchor.json: "object that is not a schema containing an $anchor property" - "const at const_not_anchor does not match" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 701 - not-an-id.json: "object that is not a schema containing an $id property" - "skip traversing definition for a valid result" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 702 - not-an-id.json: "object that is not a schema containing an $id property" - "const at const_not_id does not match" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else/$ref/const" 464s # }, 464s # { 464s # "error": "subschema is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/else" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 703 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is valid against first definition" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 704 - ref-and-id.json: "$id must be evaluated before $ref to get the proper $ref destination" - "data is invalid against first definition" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref-and-id2/int.json#/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref-and-id2/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 705 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 706 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref1/int.json#/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref1/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 707 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 708 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "/ref2/base.json#/definitions/bigint/maximum", 464s # "error": "value is greater than 10", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf/0/$ref/maximum" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "/ref2/base.json#/allOf", 464s # "error": "subschema 0 is not valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/allOf" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 709 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/enum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value does not match", 464s # "instanceLocation": "", 464s # "keywordLocation": "/enum" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 710 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 711 - ref.json: "invalid $ref: invalid anchor fragment" - "an invalid anchor fragment" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/definitions/foo/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/definitions/foo/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 712 - ref.json: "invalid $ref: invalid json-pointer fragment" - "an invalid json-pointer fragment" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/definitions/foo/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "$ref value is not a valid URI reference", 464s # "instanceLocation": "", 464s # "keywordLocation": "/definitions/foo/$ref" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 713 - ref.json: "base URI change - change folder in subschema with path from root" - "number is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 714 - ref.json: "base URI change - change folder in subschema with path from root" - "string is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "/list/0", 464s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 464s # "error": "subschema is not valid against all items", 464s # "instanceLocation": "/list", 464s # "keywordLocation": "/properties/list/$ref/items" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/folderInteger.json#/type", 464s # "error": "got string, not integer", 464s # "instanceLocation": "/list/0", 464s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 464s # "error": "subschema is not valid against all items", 464s # "instanceLocation": "/list", 464s # "keywordLocation": "/properties/list/$ref/items" 464s # }, 464s # { 464s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs.json#/properties", 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 715 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "single item is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 716 - short-circuit.json: "items (schema form) does not improperly short-circuit" - "second item is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/1", 464s # "keywordLocation": "/items/multipleOf" 464s # }, 464s # { 464s # "error": "subschema is not valid against all items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/1", 464s # "keywordLocation": "/items/multipleOf" 464s # }, 464s # { 464s # "error": "subschema is not valid against all items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 717 - short-circuit.json: "items (array form) does not improperly short-circuit" - "single item is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 718 - short-circuit.json: "items (array form) does not improperly short-circuit" - "second item is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/1", 464s # "keywordLocation": "/items/1/multipleOf" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/1", 464s # "keywordLocation": "/items/1/multipleOf" 464s # }, 464s # { 464s # "error": "not all items are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/items" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 719 - short-circuit.json: "additionalItems does not improperly short-circuit" - "single additional item is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 720 - short-circuit.json: "additionalItems does not improperly short-circuit" - "second additional item is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/2", 464s # "keywordLocation": "/additionalItems/multipleOf" 464s # }, 464s # { 464s # "error": "subschema is not valid against all additional items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/2", 464s # "keywordLocation": "/additionalItems/multipleOf" 464s # }, 464s # { 464s # "error": "subschema is not valid against all additional items", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalItems" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 721 - short-circuit.json: "properties does not improperly short-circuit" - "single property is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 722 - short-circuit.json: "properties does not improperly short-circuit" - "second property is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/properties/beta/multipleOf" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/properties/beta/multipleOf" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 723 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 724 - short-circuit.json: "properties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/properties/beta" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/properties/beta" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/properties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 725 - short-circuit.json: "patternProperties does not improperly short-circuit" - "single property is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 726 - short-circuit.json: "patternProperties does not improperly short-circuit" - "second property is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/patternProperties/^b/multipleOf" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/patternProperties/^b/multipleOf" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 727 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "single property is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 728 - short-circuit.json: "patternProperties does not improperly short-circuit (boolean schemas)" - "second property is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/patternProperties/^b" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "property not permitted", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/patternProperties/^b" 464s # }, 464s # { 464s # "error": "not all properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/patternProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 729 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "single property is valid" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 730 - short-circuit.json: "additionalProperties does not improperly short-circuit" - "second property is invalid" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/additionalProperties/multipleOf" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "value is not a multiple of 2", 464s # "instanceLocation": "/beta", 464s # "keywordLocation": "/additionalProperties/multipleOf" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 731 - unknownKeyword.json: "past and future keywords are ignored" - "passing" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 732 - unknownKeyword.json: "past and future keywords are ignored" - "failing (string)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "got string, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "got string, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 733 - unknownKeyword.json: "past and future keywords are ignored" - "failing (object)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "got object, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "got object, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 734 - unknownKeyword.json: "past and future keywords are ignored" - "failing (array)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "got array, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "got array, not number", 464s # "instanceLocation": "", 464s # "keywordLocation": "/type" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 735 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 736 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 737 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/bar", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "additional property not permitted", 464s # "instanceLocation": "/bar", 464s # "keywordLocation": "/additionalProperties" 464s # }, 464s # { 464s # "error": "not all additional properties are valid", 464s # "instanceLocation": "", 464s # "keywordLocation": "/additionalProperties" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 738 - unknownKeyword.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch (but $dynamicRef is ignored)" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s # 464s ok 739 - vocabulary.json: "valid $vocabulary: everything is valid" - "a valid $vocabulary value" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 740 - vocabulary.json: "wrong specification version: but this is draft7" - "invalid $vocabulary value: wrong specification version" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 741 - vocabulary.json: "but this is draft7" - "invalid $vocabulary value: unknown URI" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s # 464s ok 742 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, UTC" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 743 - optional/format-date-time.json: "leap seconds" - "a valid date-time with a leap second, with minus offset" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 744 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, UTC" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date-time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date-time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 745 - optional/format-date-time.json: "leap seconds" - "an invalid date-time with a leap second, with minus offset" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date-time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date-time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 746 - optional/format-date.json: "non-ascii digits should be rejected" - "BENGALI DIGIT TWO is not valid in dates" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid date", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s ok 747 - optional/format-time.json: "validation of time strings" - "valid leap second, Zulu" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 748 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 749 - optional/format-time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 750 - optional/format-time.json: "validation of time strings" - "valid leap second, positive time-offset" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 751 - optional/format-time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 752 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 753 - optional/format-time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 754 - optional/format-time.json: "validation of time strings" - "valid leap second, negative time-offset" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 755 - optional/format-time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 464s # result: { 464s # "valid": true 464s # } 464s # short-circuited result: { 464s # "valid": true 464s # } 464s ok 1 - test passes: data is valid: true 464s 1..1 464s } 464s ok 756 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 757 - optional/format-time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 758 - optional/format-time.json: "validation of time strings" - "no time offset" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s ok 759 - optional/format-time.json: "validation of time strings" - "non-ascii digits should be rejected" { 464s # result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s # short-circuited result: { 464s # "errors": [ 464s # { 464s # "error": "not a valid time", 464s # "instanceLocation": "", 464s # "keywordLocation": "/format" 464s # } 464s # ], 464s # "valid": false 464s # } 464s ok 1 - test passes: data is valid: false 464s 1..1 464s } 464s # 464s # 464s # generated with: Test::JSON::Schema::Acceptance 1.026 464s # specification version: draft7 464s # using custom test directory: t/additional-tests-draft7 464s # optional tests included: yes 464s # 464s # filename pass todo-fail fail 464s # --------------------------------------------------------------- 464s # badRef.json 3 0 0 464s # faux-buggy-schemas.json 2 0 0 464s # format-ipv4.json 4 0 0 464s # format-relative-json-pointer.json 7 0 0 464s # id.json 9 0 0 464s # integers.json 29 0 0 464s # keyword-independence.json 636 0 0 464s # loose-types-const-enum.json 8 0 0 464s # not-an-anchor.json 2 0 0 464s # not-an-id.json 2 0 0 464s # ref-and-id.json 2 0 0 464s # ref.json 10 0 0 464s # short-circuit.json 16 0 0 464s # unknownKeyword.json 8 0 0 464s # vocabulary.json 3 0 0 464s # optional/format-date-time.json 4 0 0 464s # optional/format-date.json 1 0 0 464s # optional/format-time.json 13 0 0 464s # --------------------------------------------------------------- 464s # TOTAL 759 0 0 464s # 464s # Congratulations, all non-optional tests are passing! 464s # 464s ok 760 - no leaks in the main evaluator object 464s ok 761 - no leaks in the short-circuiting evaluator object 464s ok 762 - got unsupported keyword warnings 464s 1..762 464s ok 465s t/annotations.t ......................... 465s # Subtest: draft7 465s ok 1 - user cannot enable annotations for draft7 465s ok 2 - user cannot enable annotations for draft7 even as an override 465s 1..2 465s ok 1 - draft7 465s # Subtest: allOf 465s ok 1 - evaluation of the allOf keyword fails 465s ok 2 - failing allOf: state is correct after evaluating 465s ok 3 - evaluation of the allOf keyword succeeds 465s ok 4 - passing allOf: state is correct after evaluating 465s ok 5 - annotation collection can be turned off in evaluate() 465s ok 6 - ...but the value is still true on the object 465s ok 7 - collect_annotations defaults to false 465s ok 8 - annotation collection can be turned on in evaluate() also 465s 1..8 465s ok 2 - allOf 465s # Subtest: oneOf 465s ok 1 - evaluation of the oneOf keyword fails 465s ok 2 - failing oneOf: state is correct after evaluating 465s ok 3 - evaluation of the oneOf keyword succeeds 465s ok 4 - passing oneOf: state is correct after evaluating 465s 1..4 465s ok 3 - oneOf 465s # Subtest: not 465s ok 1 - evaluation of the not keyword fails 465s ok 2 - failing not: state is correct after evaluating 465s ok 3 - evaluation of the not keyword fails 465s ok 4 - failing not: state is correct after evaluating (annotations will be ultimately discarded) 465s ok 5 - evaluation of the not keyword succeeds 465s ok 6 - passing not: state is correct after evaluating 465s ok 7 - annotations are still collected inside a "not", otherwise the unevaluatedProperties would have returned false 465s 1..7 465s ok 4 - not 465s # Subtest: prefixItems 465s ok 1 - no items means that "prefixItems" succeeds 465s ok 2 - no items: no annotation is produced by prefixItems 465s ok 3 - one item 465s ok 4 - passing prefixItems: one item is annotated 465s ok 5 - two items, one failing 465s ok 6 - failing prefixItems still collects annotations 465s 1..6 465s ok 5 - prefixItems 465s # Subtest: schema-items 465s ok 1 - no items means that "items" succeeds 465s ok 2 - no items: no annotation is produced by items 465s ok 3 - one item 465s ok 4 - passing items: one item is annotated 465s ok 5 - two items, one failing 465s ok 6 - failing items still collects annotations 465s 1..6 465s ok 6 - schema-items 465s # Subtest: additionalItems 465s ok 1 - no items means that "additionalItems" succeeds 465s ok 2 - no items: no annotation is produced by additionaltems 465s ok 3 - one item 465s ok 4 - additionalItems does nothing without items 465s 1..4 465s ok 7 - additionalItems 465s # Subtest: properties 465s ok 1 - no items means that "properties" succeeds 465s ok 2 - no properties: annotation is still produced by properties 465s ok 3 - one property 465s ok 4 - passing properties: one property is annotated 465s ok 5 - two properties, one failing 465s ok 6 - failing properties still collects annotations 465s 1..6 465s ok 8 - properties 465s # Subtest: patternProperties 465s ok 1 - no items means that "patternProperties" succeeds 465s ok 2 - no pProperties: annotation is still produced by patternProperties 465s ok 3 - one property 465s ok 4 - passing properties: one property is annotated 465s ok 5 - two properties, one failing 465s ok 6 - failing patternProperties still collects annotations 465s 1..6 465s ok 9 - patternProperties 465s # Subtest: additionalProperties 465s ok 1 - no items means that "additionalProperties" succeeds 465s ok 2 - no properties: no annotation is produced by additionalProperties 465s ok 3 - one property 465s ok 4 - passing additionalProperties: one property is annotated 465s ok 5 - two properties, one failing 465s ok 6 - failing properties still collects annotations 465s 1..6 465s ok 10 - additionalProperties 465s # Subtest: unevaluatedProperties 465s ok 1 - no items means that "unevaluatedProperties" succeeds 465s ok 2 - no properties: no annotation is produced by unevaluatedProperties 465s ok 3 - one property 465s ok 4 - passing unevaluatedProperties: one property is annotated 465s ok 5 - two properties, one failing 465s ok 6 - failing unevaluatedProperties still collects annotations 465s 1..6 465s ok 11 - unevaluatedProperties 465s # Subtest: collect_annotations and unevaluated keywords 465s ok 1 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (valid result, no annotations in result) 465s ok 2 - when "collect_annotations" is explicitly set to false, unevaluatedItems can still be used (invalid result) 465s ok 3 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (valid result, no annotations) 465s ok 4 - when "collect_annotations" is explicitly set to false, unevaluatedProperties can still be used (invalid result) 465s ok 5 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (valid result) 465s ok 6 - when "collect_annotations" is explicitly set to false, unevaluatedProperties still be used, even in other documents (invalid result) 465s ok 7 - when "collect_annotations" is set to true, unevaluatedItems works, and annotations are returned 465s ok 8 - when "collect_annotations" is set to true, unevaluatedProperties passes, and annotations are returned 465s ok 9 - when "collect_annotations" is not set, unevaluatedItems still works, but annotations are not returned 465s ok 10 - when "collect_annotations" is not set, unevaluatedProperties still works, but annotations are not returned 465s ok 11 - ... still works when unevaluated keywords are in a separate document 465s ok 12 - items.json does not need collect_annotations => 1 to evaluate itself 465s ok 13 - properties.json does not need collect_annotations => 1 to evaluate itself 465s ok 14 - referenced schemas still produce annotations internally when needed, even when not required to evaluate themselves in isolation 465s 1..14 465s ok 12 - collect_annotations and unevaluated keywords 465s # Subtest: annotate unknown keywords 465s ok 1 - no annotations even when collect_annotations is false 465s ok 2 - unknown keywords are collected as annotations 465s ok 3 - "unknown" keyword is set on the annotation objects for unknown keywords 465s ok 4 - no annotations from unknown keywords in draft2019-09 465s 1..4 465s ok 13 - annotate unknown keywords 465s # Subtest: items + additionalItems, prefixItems + items 465s ok 1 - schema-based items + additionalItems 465s ok 2 - prefixItems + schema-based items 465s 1..2 465s ok 14 - items + additionalItems, prefixItems + items 465s 1..14 465s ok 465s t/boolean-data.t ........................ 465s # Subtest: strict booleans (default) 465s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 465s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 465s ok 3 - correct error generated from type for undef 465s ok 4 - correct error generated from type for 0 465s ok 5 - correct error generated from type for 1 465s ok 6 - correct error generated from type for '0' 465s ok 7 - correct error generated from type for '1' 465s ok 8 - correct error generated from type for 'false' 465s ok 9 - correct error generated from type for 'true' 465s ok 10 - correct error generated from type for \0 465s ok 11 - correct error generated from type for \1 465s ok 12 - in data, undef not is a boolean 465s ok 13 - in data, 0 not is a boolean 465s ok 14 - in data, 1 not is a boolean 465s ok 15 - in data, '0' not is a boolean 465s ok 16 - in data, '1' not is a boolean 465s ok 17 - in data, 'false' not is a boolean 465s ok 18 - in data, 'true' not is a boolean 465s ok 19 - in data, \0 not is a boolean 465s ok 20 - in data, \1 not is a boolean 465s 1..20 465s ok 1 - strict booleans (default) 465s # Subtest: scalarref_booleans = 1 465s ok 1 - in data, bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ) is a boolean 465s ok 2 - in data, bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ) is a boolean 465s ok 3 - in data, \0 is a boolean 465s ok 4 - in data, \1 is a boolean 465s ok 5 - correct error generated from type for ['null',undef] 465s ok 6 - correct error generated from type for ['integer',0] 465s ok 7 - correct error generated from type for ['integer',1] 465s ok 8 - correct error generated from type for ['string','0'] 465s ok 9 - correct error generated from type for ['string','1'] 465s ok 10 - correct error generated from type for ['string','false'] 465s ok 11 - correct error generated from type for ['string','true'] 465s ok 12 - items are all considered unique when types differ, even when perl treats them similarly 465s ok 13 - scalarrefs compare as identical to their counterpart booleans 465s ok 14 - scalarrefs compare as identical to their counterpart booleans 465s ok 15 - scalarrefs compare as identical to their counterpart booleans 465s ok 16 - scalarrefs compare as identical to their counterpart booleans 465s 1..16 465s ok 2 - scalarref_booleans = 1 465s 1..2 465s ok 466s t/boolean-schemas.t ..................... 466s ok 1 - schema: false evaluates to: false 466s ok 2 - invalid result structure looks correct 466s ok 3 - no exceptions in evaluate 466s ok 4 - schema: true evaluates to: true 466s ok 5 - invalid result structure looks correct 466s ok 6 - no exceptions in evaluate 466s ok 7 - schema: {} evaluates to: true 466s ok 8 - invalid result structure looks correct 466s ok 9 - no exceptions in evaluate 466s ok 10 - schema: 0 evaluates to: false 466s ok 11 - invalid result structure looks correct 466s ok 12 - no exceptions in evaluate 466s ok 13 - schema: 1 evaluates to: false 466s ok 14 - invalid result structure looks correct 466s ok 15 - no exceptions in evaluate 466s ok 16 - schema: false evaluates to: false 466s ok 17 - invalid result structure looks correct 466s ok 18 - no exceptions in evaluate 466s ok 19 - schema: true evaluates to: false 466s ok 20 - invalid result structure looks correct 466s ok 21 - no exceptions in evaluate 466s ok 22 - invalid schema type results in error 466s ok 23 - scalarref for schema results in error, even when scalarref_booleans is true 466s 1..23 466s ok 467s t/cached-metaschemas.t .................. 467s # Subtest: load cached metaschema 467s ok 1 - this resource is not yet known 467s ok 2 - loaded metaschema from sharedir cache 467s ok 3 - this resource is now in the resource index 467s 1..3 467s ok 1 - load cached metaschema 467s # Subtest: resource collision with cached metaschema 467s ok 1 - cannot introduce another schema whose id collides with a cached schema, even if it isn't loaded yet 467s 1..1 467s ok 2 - resource collision with cached metaschema 467s 1..2 467s ok 467s t/callbacks.t ........................... 467s # Subtest: evaluation callbacks 467s ok 1 - evaluation was successful 467s ok 2 - identified all data paths where a $ref was used 467s ok 3 - evaluation was not successful 467s ok 4 - no callbacks on failure: innermost $ref failed, so all other $refs failed too 467s ok 5 - evaluation was successful 467s ok 6 - successful subschemas have callbacks called, but not failed subschemas 467s 1..6 467s ok 1 - evaluation callbacks 467s # Subtest: callbacks for keywords without eval subs 467s ok 1 - evaluation was successful 467s ok 2 - callbacks are triggered for keywords even when they lack evaluation subs 467s 1..2 467s ok 2 - callbacks for keywords without eval subs 467s # Subtest: callbacks that produce errors 467s ok 1 - result object contains the callback error, and the other errors 467s ok 2 - result object contains the callback error, and short-circuits execution 467s 1..2 467s ok 3 - callbacks that produce errors 467s 1..3 467s ok 468s t/content-encoding.t .................... 468s # Subtest: unrecognized encoding formats do not result in errors, when not asserting 468s ok 1 - in evaluate(), annotations are collected and no validation is performed 468s 1..1 468s ok 1 - unrecognized encoding formats do not result in errors, when not asserting 468s # Subtest: media_type and encoding handlers 468s ok 1 - upper-cased names are not accepted 468s ok 2 - application/json media_type decoder 468s ok 3 - */* has no default match 468s ok 4 - default text/plain media_type decoder 468s ok 5 - getter uses the casefolded name 468s ok 6 - getter matches to wildcard entries 468s ok 7 - getter uses new override entry for wildcard 468s ok 8 - getter prefers case-insensitive matches to wildcard entries 468s ok 9 - getter matches to wildcard entries 468s ok 10 - text/* matches itself 468s ok 11 - getter still prefers case-insensitive matches to wildcard entries 468s ok 12 - text/* is preferred to */* 468s ok 13 - */* matches */*, once defined 468s ok 14 - */* is returned as a last resort 468s ok 15 - application/x-www-form-urlencoded happy path with unicode 468s ok 16 - application/x-ndjson happy path with unicode 468s ok 17 - application/x-ndjson dies with line number of the bad data 468s ok 18 - base64 encoding decoder + application/json media_type decoder 468s ok 19 - base64url encoding decoder + application/json media_type decoder 468s 1..19 468s ok 2 - media_type and encoding handlers 468s # Subtest: draft2020-12 assertions 468s ok 1 - under the current spec version, content* keywords are not assertions 468s ok 2 - contentEncoding first decodes the string, erroring if it can't 468s ok 3 - then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 468s ok 4 - contentSchema evaluates the decoded data 468s ok 5 - null data is handled properly 468s ok 6 - contentSchema successfully evaluates the decoded data 468s 1..6 468s ok 3 - draft2020-12 assertions 468s # Subtest: draft7 assertions 468s ok 1 - in draft7, assertion behaviour is the default 468s ok 2 - in draft7, then contentMediaType parses the decoded string, erroring if it can't, and does not continue with the schema 468s ok 3 - under draft7, content* are assertions by default, but contentSchema does not exist 468s 1..3 468s ok 4 - draft7 assertions 468s # Subtest: more assertions 468s ok 1 - evaluation aborts with an unrecognized contentEncoding 468s ok 2 - evaluation aborts with an unrecognized contentMediaType 468s 1..2 468s ok 5 - more assertions 468s 1..5 468s ok 469s t/dialects.t ............................ 469s # Subtest: invalid use of the $schema keyword 469s ok 1 - $schema can only appear at the root of a schema, when there is no canonical URI 469s ok 2 - $schema can only appear where the canonical URI has no fragment, when there is a canonical URI 469s ok 3 - this is still not a resource root, even in a $ref target 469s 1..3 469s ok 1 - invalid use of the $schema keyword 469s # Subtest: defaults without a $schema keyword 469s ok 1 - boolean schema: no $id, no $schema 469s ok 2 - boolean schema: defaults to draft2020-12 without a $schema keyword 469s ok 3 - object schema: no $id, no $schema 469s ok 4 - object schema: defaults to draft2020-12 without a $schema keyword 469s ok 5 - "not" keyword, from the Applicator vocabulary, is traversed at the root level 469s ok 6 - object schema: $id, no $schema 469s ok 7 - named resource defaults to draft2020-12 without a $schema keyword 469s ok 8 - boolean schema: no $id, no $schema 469s ok 9 - boolean schema: specification_version overridden 469s ok 10 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during traversal 469s ok 11 - object schema: no $id, no $schema, specification version overridden, other keywords are ignored during evaluation 469s ok 12 - object schema: overridden to draft7 469s ok 13 - object schema: $id, no $schema, unrecognized+invalid keywords are ignored during traversal 469s ok 14 - object schema: $id, no $schema 469s ok 15 - object schema: overridden to draft7 and other keywords are ignored 469s 1..15 469s ok 2 - defaults without a $schema keyword 469s # Subtest: behaviour with a $schema keyword 469s ok 1 - object schema: no $id, has $schema, unrecognized+invalid keywords are ignored during traversal 469s ok 2 - object schema: no $id, has $schema, unrecognized keywords are ignored during evaluation 469s ok 3 - semantics can be changed to another draft version 469s ok 4 - schema is accepted with $schema without an empty fragment 469s ok 5 - ..and is still recognized as draft7 469s ok 6 - $id and $schema, unrecognized+invalid keywords are ignored during traversal 469s ok 7 - $id and $schema 469s ok 8 - named resource can be changed to another draft version and other keywords are ignored 469s ok 9 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 469s ok 10 - no $id, specification version overridden twice, other keywords are ignored during evaluation 469s ok 11 - unnamed resource can be changed to another draft version 469s ok 12 - no $id, specification version overridden twice; unrecognized+invalid keywords are ignored during traversal 469s ok 13 - no $id, specification version overridden twice, other keywords are ignored during evaluation 469s ok 14 - unnamed resource can be changed to another draft version 469s 1..14 469s ok 3 - behaviour with a $schema keyword 469s # Subtest: setting or changing schema semantics in a single document 469s ok 1 - $schema can appear adjacent to any $id 469s 1..1 469s ok 4 - setting or changing schema semantics in a single document 469s # Subtest: changing schema semantics across documents 469s ok 1 - no unexpected warnings 469s ok 2 - switching between specification versions is acceptable when crossing document boundaries 469s ok 3 - resources for top level schema 469s ok 4 - resources for subschema 469s ok 5 - no unexpected warnings 469s ok 6 - switching between specification versions is acceptable when crossing document boundaries 469s ok 7 - resources for top level schema 469s ok 8 - resources for subschema 469s 1..8 469s ok 5 - changing schema semantics across documents 469s # Subtest: changing schema semantics within documents 469s # 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 674. 469s ok 1 - switching between specification versions is acceptable within a document, draft2019-09 -> draft7 469s ok 2 - resources for top level schema 469s ok 3 - resources for subschema 469s # 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 778. 469s ok 4 - switching between specification versions is acceptable within a document, draft7 -> draf2020-12 469s ok 5 - resources for top level schema 469s ok 6 - resources for subschema 469s 1..6 469s ok 6 - changing schema semantics within documents 469s # Subtest: $vocabulary 469s ok 1 - $vocabulary syntax checks 469s ok 2 - $vocabulary location check - resource root 469s ok 3 - $vocabulary location check - document root 469s ok 4 - successfully evaluated a metaschema that specifies vocabularies 469s ok 5 - metaschemas are not saved on the resource 469s ok 6 - ..but once we use the schema as a metaschema, 469s ok 7 - ... the vocabulary information is now cached in the evaluator 469s 1..7 469s ok 7 - $vocabulary 469s # Subtest: standard metaschemas 469s ok 1 - main metaschema evaluated against its own URI 469s ok 2 - main metaschema evaluated against its own content 469s ok 3 - core metaschema evaluated against the main metaschema URI 469s ok 4 - core metaschema evaluated against its own content 469s 1..4 469s ok 8 - standard metaschemas 469s # Subtest: custom metaschemas, without custom vocabularies 469s ok 1 - specification version detected from standard metaschema URI 469s ok 2 - custom metaschema restricts schemas to objects 469s ok 3 - custom metaschema recurses to standard metaschema 469s ok 4 - objects are acceptable schemas to this metaschema 469s ok 5 - metaschemas without $vocabulary can still be used in the $schema keyword 469s ok 6 - ..and schema uses the correct spec version and vocabularies 469s 1..6 469s ok 9 - custom metaschemas, without custom vocabularies 469s # Subtest: custom metaschemas, with custom vocabularies 469s ok 1 - custom metaschemas are okay, but the document must be known 469s ok 2 - $vocabulary location check - document root 469s ok 3 - metaschemas must have an i$id 469s ok 4 - $vocabulary validation that must be deferred until used as a metaschema 469s ok 5 - metaschemas using "$vocabulary" must contain vocabularies 469s ok 6 - metaschemas must contain the Core vocabulary 469s ok 7 - validation succeeds because "minimum" never gets run 469s ok 8 - determined vocabularies to use for this schema 469s 1..8 469s ok 10 - custom metaschemas, with custom vocabularies 469s # Subtest: custom vocabulary classes with add_vocabulary() 469s ok 1 - vocabulary class must exist 469s ok 2 - vocabulary class must implement the role 469s ok 3 - vocabulary class must implement some subs 469s ok 4 - vocabulary() sub in the vocabulary class must return uri => specification_version pairs 469s ok 5 - parse error from bad vocab sub 469s ok 6 - vocabulary() sub in the vocabulary class must contain valid absolute, fragmentless URIs 469s ok 7 - vocabulary() sub in the vocabulary class must reference a known specification version 469s ok 8 - added a vocabulary sub 469s ok 9 - vocabulary was successfully added 469s ok 10 - custom vocabulary class has a conflicting evaluation_order 469s ok 11 - added another vocabulary sub 469s ok 12 - custom vocabulary class used by a custom metaschema used by a schema 469s 1..12 469s ok 11 - custom vocabulary classes with add_vocabulary() 469s # Subtest: $schema points to a boolean schema 469s ok 1 - $schema cannot reference a boolean schema 469s 1..1 469s ok 12 - $schema points to a boolean schema 469s 1..12 469s ok 470s t/document.t ............................ 470s # Subtest: boolean document 470s ok 1 - boolean schema with no canonical_uri 470s ok 2 - boolean schema with invalid canonical_uri (fragment) 470s ok 3 - boolean schema with valid canonical_uri 470s 1..3 470s ok 1 - boolean document 470s # Subtest: object document 470s ok 1 - object schema with no canonical_uri, no root $id 470s ok 2 - object schema with valid canonical_uri, no root $id 470s ok 3 - object schema with no canonical_uri, and absolute root $id 470s ok 4 - object schema with no canonical_uri, and absolute root $id 470s ok 5 - object schema with no canonical_uri, and absolute root $id 470s ok 6 - object schema with canonical_uri and root $id, and additional resource schemas as well 470s ok 7 - relative uri for root $id 470s ok 8 - no root $id; absolute uri with path in subschema resource 470s 1..8 470s ok 2 - object document 470s # Subtest: $id and $anchor as properties 470s ok 1 - did not index the $id and $anchor properties as if they were identifier keywords 470s 1..1 470s ok 3 - $id and $anchor as properties 470s # Subtest: $id with an empty fragment 470s ok 1 - $id is stored with the empty fragment stripped 470s 1..1 470s ok 4 - $id with an empty fragment 470s # Subtest: $id with a non-empty fragment 470s ok 1 - did not index the $id with a non-empty fragment, nor use it as the base for other identifiers 470s 1..1 470s ok 5 - $id with a non-empty fragment 470s # Subtest: $anchor not conforming to syntax 470s ok 1 - did not index an $anchor with invalid characters 470s 1..1 470s ok 6 - $anchor not conforming to syntax 470s # Subtest: $schema not conforming to syntax 470s ok 1 - invalid $schema is detected 470s 1..1 470s ok 7 - $schema not conforming to syntax 470s # Subtest: $anchor and $id below an $id that is not at the document root 470s ok 1 - canonical_uri uses the path from the innermost $id, not document root $id 470s 1..1 470s ok 8 - $anchor and $id below an $id that is not at the document root 470s # Subtest: JSON pointer and URI escaping 470s ok 1 - properly escaped special characters in JSON pointers and URIs 470s ok 2 - schema locations are tracked 470s ok 3 - non-schema locations are also tracked 470s ok 4 - schema locations can be queried 470s 1..4 470s ok 9 - JSON pointer and URI escaping 470s # Subtest: resource collisions 470s ok 1 - detected collision between document's initial uri and a subschema's uri 470s ok 2 - detected collision between two subschema uris in a document 470s ok 3 - ignored "duplicate" uris embedded in non-schemas 470s ok 4 - the correct canonical uri is indexed in the inverted index 470s 1..4 470s ok 10 - resource collisions 470s # Subtest: create document with explicit canonical_uri set to the same as root $id 470s ok 1 - there is one single uri indexed to the document 470s 1..1 470s ok 11 - create document with explicit canonical_uri set to the same as root $id 470s # Subtest: canonical_uri identification from a document with errors 470s ok 1 - error lower down in document does not result in an inner identifier being used as canonical_uri 470s 1..1 470s ok 12 - canonical_uri identification from a document with errors 470s # Subtest: custom metaschema_uri 470s ok 1 - determined vocabularies to use for this schema 470s ok 2 - validation succeeds because "minimum" never gets run 470s ok 3 - can evaluate at a subschema as well, with the same vocabularies 470s ok 4 - schema validates against its metaschema, and "minimum" is ignored 470s ok 5 - no leaks in the evaluator object 470s 1..5 470s ok 13 - custom metaschema_uri 470s 1..13 470s ok 470s t/equality.t ............................ 470s # Subtest: equality, using inflated data 470s ok 1 - null == null is true 470s ok 2 - error is undefined 470s ok 3 - type of arg 0 was not mutated while making equality check 470s ok 4 - type of arg 1 was not mutated while making equality check 470s # 470s ok 5 - null == false is false 470s ok 6 - two instances differ at the expected place 470s ok 7 - error is correct 470s ok 8 - type of arg 0 was not mutated while making equality check 470s ok 9 - type of arg 1 was not mutated while making equality check 470s # 470s ok 10 - null == true is false 470s ok 11 - two instances differ at the expected place 470s ok 12 - error is correct 470s ok 13 - type of arg 0 was not mutated while making equality check 470s ok 14 - type of arg 1 was not mutated while making equality check 470s # 470s ok 15 - null == 1 is false 470s ok 16 - two instances differ at the expected place 470s ok 17 - error is correct 470s ok 18 - type of arg 0 was not mutated while making equality check 470s ok 19 - type of arg 1 was not mutated while making equality check 470s # 470s ok 20 - null == "1" is false 470s ok 21 - two instances differ at the expected place 470s ok 22 - error is correct 470s ok 23 - type of arg 0 was not mutated while making equality check 470s ok 24 - type of arg 1 was not mutated while making equality check 470s # 470s ok 25 - ["a", "b", "c"] == ["a", "b", "c"] is true 470s ok 26 - error is undefined 470s ok 27 - type of arg 0 was not mutated while making equality check 470s ok 28 - type of arg 1 was not mutated while making equality check 470s # 470s ok 29 - ["a", "b", "c"] == ["a", "b"] is false 470s ok 30 - two instances differ at the expected place 470s ok 31 - error is correct 470s ok 32 - type of arg 0 was not mutated while making equality check 470s ok 33 - type of arg 1 was not mutated while making equality check 470s # 470s ok 34 - ["a", "b"] == ["b", "a"] is false 470s ok 35 - two instances differ at the expected place 470s ok 36 - error is correct 470s ok 37 - type of arg 0 was not mutated while making equality check 470s ok 38 - type of arg 1 was not mutated while making equality check 470s # 470s ok 39 - 1 == 1 is true 470s ok 40 - error is undefined 470s ok 41 - type of arg 0 was not mutated while making equality check 470s ok 42 - type of arg 1 was not mutated while making equality check 470s # 470s ok 43 - 1 == 1.0 is true 470s ok 44 - error is undefined 470s ok 45 - type of arg 0 was not mutated while making equality check 470s ok 46 - type of arg 1 was not mutated while making equality check 470s # 470s ok 47 - 1 == "1.0" is false 470s ok 48 - two instances differ at the expected place 470s ok 49 - error is correct 470s ok 50 - type of arg 0 was not mutated while making equality check 470s ok 51 - type of arg 1 was not mutated while making equality check 470s # 470s ok 52 - "1.1" == 1.1 is false 470s ok 53 - two instances differ at the expected place 470s ok 54 - error is correct 470s ok 55 - type of arg 0 was not mutated while making equality check 470s ok 56 - type of arg 1 was not mutated while making equality check 470s # 470s ok 57 - "1" == 1 is false 470s ok 58 - two instances differ at the expected place 470s ok 59 - error is correct 470s ok 60 - type of arg 0 was not mutated while making equality check 470s ok 61 - type of arg 1 was not mutated while making equality check 470s # 470s ok 62 - "1.1" == 1.1 is false 470s ok 63 - two instances differ at the expected place 470s ok 64 - error is correct 470s ok 65 - type of arg 0 was not mutated while making equality check 470s ok 66 - type of arg 1 was not mutated while making equality check 470s # 470s ok 67 - [1, 2] == [2, 1] is false 470s ok 68 - two instances differ at the expected place 470s ok 69 - error is correct 470s ok 70 - type of arg 0 was not mutated while making equality check 470s ok 71 - type of arg 1 was not mutated while making equality check 470s # 470s ok 72 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 470s ok 73 - error is undefined 470s ok 74 - type of arg 0 was not mutated while making equality check 470s ok 75 - type of arg 1 was not mutated while making equality check 470s # 470s ok 76 - {"a" : 1} == {"a" : 1.0} is true 470s ok 77 - error is undefined 470s ok 78 - type of arg 0 was not mutated while making equality check 470s ok 79 - type of arg 1 was not mutated while making equality check 470s # 470s ok 80 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 470s ok 81 - error is undefined 470s ok 82 - type of arg 0 was not mutated while making equality check 470s ok 83 - type of arg 1 was not mutated while making equality check 470s # 470s ok 84 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 470s ok 85 - two instances differ at the expected place 470s ok 86 - error is correct 470s ok 87 - type of arg 0 was not mutated while making equality check 470s ok 88 - type of arg 1 was not mutated while making equality check 470s # 470s ok 89 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 470s ok 90 - two instances differ at the expected place 470s ok 91 - error is correct 470s ok 92 - type of arg 0 was not mutated while making equality check 470s ok 93 - type of arg 1 was not mutated while making equality check 470s # 470s ok 94 - [{"a" : 1}] == [{"a" : 1, "b" : 2}] is false 470s ok 95 - two instances differ at the expected place 470s ok 96 - error is correct 470s ok 97 - type of arg 0 was not mutated while making equality check 470s ok 98 - type of arg 1 was not mutated while making equality check 470s # 470s ok 99 - [{"a" : 1}] == [{"b" : 2}] is false 470s ok 100 - two instances differ at the expected place 470s ok 101 - error is correct 470s ok 102 - type of arg 0 was not mutated while making equality check 470s ok 103 - type of arg 1 was not mutated while making equality check 470s # 470s ok 104 - {"foo" : [[0]]} == {"foo" : [[0, 1]]} is false 470s ok 105 - two instances differ at the expected place 470s ok 106 - error is correct 470s ok 107 - type of arg 0 was not mutated while making equality check 470s ok 108 - type of arg 1 was not mutated while making equality check 470s # 470s 1..108 470s ok 1 - equality, using inflated data 470s # Subtest: equality, using JSON strings 470s ok 1 - null == null is true 470s ok 2 - type of arg 0 was not mutated while making equality check 470s ok 3 - type of arg 1 was not mutated while making equality check 470s # 470s ok 4 - null == 1 is false 470s ok 5 - two instances differ at the expected place 470s ok 6 - type of arg 0 was not mutated while making equality check 470s ok 7 - type of arg 1 was not mutated while making equality check 470s # 470s ok 8 - ["a", "b", "c"] == ["a", "b", "c"] is true 470s ok 9 - type of arg 0 was not mutated while making equality check 470s ok 10 - type of arg 1 was not mutated while making equality check 470s # 470s ok 11 - ["a", "b", "c"] == ["a", "b"] is false 470s ok 12 - two instances differ at the expected place 470s ok 13 - type of arg 0 was not mutated while making equality check 470s ok 14 - type of arg 1 was not mutated while making equality check 470s # 470s ok 15 - ["a", "b"] == ["b", "a"] is false 470s ok 16 - two instances differ at the expected place 470s ok 17 - type of arg 0 was not mutated while making equality check 470s ok 18 - type of arg 1 was not mutated while making equality check 470s # 470s ok 19 - 1 == 1 is true 470s ok 20 - type of arg 0 was not mutated while making equality check 470s ok 21 - type of arg 1 was not mutated while making equality check 470s # 470s ok 22 - 1 == 1.0 is true 470s ok 23 - type of arg 0 was not mutated while making equality check 470s ok 24 - type of arg 1 was not mutated while making equality check 470s # 470s ok 25 - 10 == 10.0 is true 470s ok 26 - type of arg 0 was not mutated while making equality check 470s ok 27 - type of arg 1 was not mutated while making equality check 470s # 470s ok 28 - [1, 2] == [2, 1] is false 470s ok 29 - two instances differ at the expected place 470s ok 30 - type of arg 0 was not mutated while making equality check 470s ok 31 - type of arg 1 was not mutated while making equality check 470s # 470s ok 32 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 2} is true 470s ok 33 - type of arg 0 was not mutated while making equality check 470s ok 34 - type of arg 1 was not mutated while making equality check 470s # 470s ok 35 - {"a" : 1} == {"a" : 1.0} is true 470s ok 36 - type of arg 0 was not mutated while making equality check 470s ok 37 - type of arg 1 was not mutated while making equality check 470s # 470s ok 38 - ["école", "ಠ_ಠ"] == ["école", "ಠ_ಠ"] is true 470s ok 39 - type of arg 0 was not mutated while making equality check 470s ok 40 - type of arg 1 was not mutated while making equality check 470s # 470s ok 41 - {"a" : 1, "b" : 2} == {"a" : 1, "b" : 3} is false 470s ok 42 - two instances differ at the expected place 470s ok 43 - type of arg 0 was not mutated while making equality check 470s ok 44 - type of arg 1 was not mutated while making equality check 470s # 470s ok 45 - {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 4}} == {"a" : {"b" : 1, "c" : 2}, "d" : {"e" : 3, "f" : 5}} is false 470s ok 46 - two instances differ at the expected place 470s ok 47 - type of arg 0 was not mutated while making equality check 470s ok 48 - type of arg 1 was not mutated while making equality check 470s # 470s 1..48 470s ok 2 - equality, using JSON strings 470s # Subtest: equality, using scalarref_booleans 470s ok 1 - false == true is false 470s ok 2 - two instances differ at the expected place 470s ok 3 - type of arg 0 was not mutated while making equality check 470s ok 4 - type of arg 1 was not mutated while making equality check 470s # 470s ok 5 - true == true is true 470s ok 6 - type of arg 0 was not mutated while making equality check 470s ok 7 - type of arg 1 was not mutated while making equality check 470s # 470s ok 8 - false == false is true 470s ok 9 - type of arg 0 was not mutated while making equality check 470s ok 10 - type of arg 1 was not mutated while making equality check 470s # 470s ok 11 - true == false is false 470s ok 12 - two instances differ at the expected place 470s ok 13 - type of arg 0 was not mutated while making equality check 470s ok 14 - type of arg 1 was not mutated while making equality check 470s # 470s ok 15 - null == false is false 470s ok 16 - two instances differ at the expected place 470s ok 17 - type of arg 0 was not mutated while making equality check 470s ok 18 - type of arg 1 was not mutated while making equality check 470s # 470s ok 19 - null == false is false 470s ok 20 - two instances differ at the expected place 470s ok 21 - type of arg 0 was not mutated while making equality check 470s ok 22 - type of arg 1 was not mutated while making equality check 470s # 470s 1..22 470s ok 3 - equality, using scalarref_booleans 470s # Subtest: equality, using stringy_numbers 470s ok 1 - 1 == 1 is true 470s ok 2 - type of arg 0 was not mutated while making equality check (get_type returns integer) 470s ok 3 - type of arg 1 was not mutated while making equality check (get_type returns integer) 470s ok 4 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 470s ok 5 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 470s # 470s ok 6 - 1 == 1.0 is true 470s ok 7 - type of arg 0 was not mutated while making equality check (get_type returns integer) 470s ok 8 - type of arg 1 was not mutated while making equality check (get_type returns integer) 470s ok 9 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 470s ok 10 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 470s # 470s ok 11 - 1 == "1.0" is true 470s ok 12 - type of arg 0 was not mutated while making equality check (get_type returns integer) 470s ok 13 - type of arg 1 was not mutated while making equality check (get_type returns string) 470s ok 14 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 470s ok 15 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 16 - "1.1" == 1.1 is true 470s ok 17 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 18 - type of arg 1 was not mutated while making equality check (get_type returns number) 470s ok 19 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 20 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 470s # 470s ok 21 - "1" == 1 is true 470s ok 22 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 23 - type of arg 1 was not mutated while making equality check (get_type returns integer) 470s ok 24 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 25 - type of arg 1 was not mutated while making equality check (is_type('integer') returns true) 470s # 470s ok 26 - "1.1" == 1.1 is true 470s ok 27 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 28 - type of arg 1 was not mutated while making equality check (get_type returns number) 470s ok 29 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 30 - type of arg 1 was not mutated while making equality check (is_type('number') returns true) 470s # 470s ok 31 - "1" == "1.00" is true 470s ok 32 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 33 - type of arg 1 was not mutated while making equality check (get_type returns string) 470s ok 34 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 35 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 36 - "1.10" == "1.1000" is true 470s ok 37 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 38 - type of arg 1 was not mutated while making equality check (get_type returns string) 470s ok 39 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 40 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 41 - "x" == "x" is true 470s ok 42 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 43 - type of arg 1 was not mutated while making equality check (get_type returns string) 470s ok 44 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 45 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 46 - "x" == "y" is false 470s ok 47 - two instances differ at the expected place 470s ok 48 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 49 - type of arg 1 was not mutated while making equality check (get_type returns string) 470s ok 50 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s ok 51 - type of arg 1 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 52 - "5" == 5 is true 470s ok 53 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 54 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 470s ok 55 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 56 - 5 == 5 is true 470s ok 57 - type of arg 0 was not mutated while making equality check (get_type returns integer) 470s ok 58 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 470s ok 59 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 470s # 470s ok 60 - "5" == "five" is false 470s ok 61 - two instances differ at the expected place 470s ok 62 - type of arg 0 was not mutated while making equality check (get_type returns string) 470s ok 63 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 470s ok 64 - type of arg 0 was not mutated while making equality check (is_type('string') returns true) 470s # 470s ok 65 - 5 == "five" is false 470s ok 66 - two instances differ at the expected place 470s ok 67 - type of arg 0 was not mutated while making equality check (get_type returns integer) 470s ok 68 - type of arg 1 was not mutated while making equality check (get_type returns ambiguous type) 470s ok 69 - type of arg 0 was not mutated while making equality check (is_type('integer') returns true) 470s # 470s 1..69 470s ok 4 - equality, using stringy_numbers 470s 1..4 470s ok 471s t/errors.t .............................. 471s # Subtest: multiple types 471s ok 1 - type returned false 471s ok 2 - got error count 471s ok 3 - correct error generated from type 471s ok 4 - result object serializes correctly 471s 1..4 471s ok 1 - multiple types 471s # Subtest: multipleOf 471s ok 1 - correct error generated from multipleOf 471s 1..1 471s ok 2 - multipleOf 471s # Subtest: uniqueItems 471s ok 1 - correct error generated from uniqueItems 471s 1..1 471s ok 3 - uniqueItems 471s # Subtest: allOf, not, and false schema 471s ok 1 - correct errors with locations; did not collect errors inside "not" 471s ok 2 - short-circuited results contain fewer errors 471s 1..2 471s ok 4 - allOf, not, and false schema 471s # Subtest: anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 471s ok 1 - correct errors with locations; did not collect errors inside "not" 471s ok 2 - short-circuited results contain the same errors (short-circuiting not possible) 471s ok 3 - did not collect errors from failure paths from successful anyOf 471s ok 4 - no errors collected for true validation 471s 1..4 471s ok 5 - anyOf keeps all errors for false paths when invalid, discards errors for false paths when valid 471s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - items 471s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 471s ok 2 - short-circuited results contain fewer errors 471s 1..2 471s ok 6 - applicators with non-boolean subschemas, discarding intermediary errors - items 471s # Subtest: applicators with non-boolean subschemas, discarding intermediary errors - contains 471s ok 1 - collected all errors from subschemas for failing branches only (passing branches discard errors) 471s ok 2 - short-circuited results contain the same errors 471s 1..2 471s ok 7 - applicators with non-boolean subschemas, discarding intermediary errors - contains 471s # Subtest: errors with $refs 471s ok 1 - errors have correct absolute keyword location via $ref 471s 1..1 471s ok 8 - errors with $refs 471s # Subtest: const and enum 471s ok 1 - got details about object differences in errors from const and enum 471s 1..1 471s ok 9 - const and enum 471s # Subtest: exceptions 471s ok 1 - attempting to evaluate a json string returns the exception as an error 471s ok 2 - exception flag is true on the result 471s ok 3 - a subschema of an invalid type returns an error at the right position, and evaluation continues 471s ok 4 - exception flag is true on the result 471s ok 5 - invalid argument to "type" returns an error at the right position, and evaluation continues 471s ok 6 - exception flag is true on the result 471s 1..6 471s ok 10 - exceptions 471s # Subtest: errors after crossing multiple $refs using $id and $anchor 471s ok 1 - errors have correct absolute keyword location via $ref 471s ok 2 - absolute keyword location is correct, even when not used in the $ref 471s 1..2 471s ok 11 - errors after crossing multiple $refs using $id and $anchor 471s # Subtest: unresolvable $ref to a local resource 471s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 471s ok 2 - exception flag is true on the result 471s 1..2 471s ok 12 - unresolvable $ref to a local resource 471s # Subtest: unresolvable $ref to a remote resource 471s ok 1 - error for a bad $ref reports the correct absolute location that was referred to 471s ok 2 - exception flag is true on the result 471s 1..2 471s ok 13 - unresolvable $ref to a remote resource 471s # Subtest: unresolvable $ref to plain-name fragment 471s ok 1 - properly handled a bad $ref to an anchor 471s ok 2 - exception flag is true on the result 471s 1..2 471s ok 14 - unresolvable $ref to plain-name fragment 471s # Subtest: abort due to a schema error 471s ok 1 - exception inside a oneOf (where errors are localized) are still included in the result 471s 1..1 471s ok 15 - abort due to a schema error 471s # Subtest: sorted property names 471s ok 1 - property names are considered in sorted order 471s 1..1 471s ok 16 - sorted property names 471s # Subtest: bad regex in schema 471s ok 1 - bad "pattern" and "patternProperties" regexes are properly noted in error 471s ok 2 - bad "pattern" regex is properly noted in error 471s ok 3 - "pattern" regex is now valid, due to the Unicode property becoming defined 471s 1..3 471s ok 17 - bad regex in schema 471s # Subtest: JSON pointer escaping 471s ok 1 - JSON pointers are properly escaped; URIs doubly so 471s ok 2 - absoluteKeywordLocation is omitted when paths are the same, not counting uri encoding 471s ok 3 - use of _schema_path_suffix in a fatal error 471s 1..3 471s ok 18 - JSON pointer escaping 471s # Subtest: absoluteKeywordLocation 471s ok 1 - absoluteKeywordLocation is included when different from instanceLocation, even when empty 471s ok 2 - absoluteKeywordLocation is not included when the path equals keywordLocation, even if a $ref is present 471s ok 3 - absoluteKeywordLocation is never "\#" 471s ok 4 - absoluteKeywordLocation reflects the canonical schema uri as it changes when passing through $id 471s ok 5 - plain-name fragment in $id does not change canonical schema uri 471s 1..5 471s ok 19 - absoluteKeywordLocation 471s # Subtest: dependentRequired 471s ok 1 - dependentRequired traversal error 471s 1..1 471s ok 20 - dependentRequired 471s # Subtest: evaluate in the middle of a document 471s ok 1 - provided evaluation uri does not exist 471s ok 2 - error has correct locations from override hash 471s 1..2 471s ok 21 - evaluate in the middle of a document 471s # Subtest: numbers in output 471s ok 1 - numbers in errors do not lose any digits of precision 471s 1..1 471s ok 22 - numbers in output 471s # Subtest: effective_base_uri 471s ok 1 - error locations are relative to the effective_base_uri, but $ref usage is not restricted 471s 1..1 471s ok 23 - effective_base_uri 471s # Subtest: recommended_response 471s ok 1 - recommended_response is not defined when there are no errors 471s ok 2 - recommended_response uses the first error in the result 471s ok 3 - recommended_response indicates an exception occurred 471s ok 4 - recommended_response uses the one from the error that is explicitly set 471s 1..4 471s ok 24 - recommended_response 471s # Subtest: exclusiveMaximum, exclusiveMinimum across drafts 471s ok 1 - later drafts; errors are produced separately from the keywords 471s ok 2 - later drafts; two errors can result 471s ok 3 - draft4: one error comes from maximum, but includes the exclusiveMaximum check 471s ok 4 - draft4: maximum + exclusiveMaximum checks are combined 471s ok 5 - draft4: exclusive check uses the right boundary 471s ok 6 - draft4: maximum check is correct 471s 1..6 471s ok 25 - exclusiveMaximum, exclusiveMinimum across drafts 471s 1..25 471s ok 471s t/evaluate_json_string.t ................ 471s ok 1 - we have a JSON decoder 471s ok 2 - json data "true" is evaluated successfully 471s ok 3 - no exceptions in evaluate_json_string on good json 471s ok 4 - evaluating bad json data returns false, with error 471s ok 5 - no exceptions in evaluate_json_string on bad json 471s 1..5 471s ok 472s t/find-identifiers.t .................... 472s # Subtest: $id sets canonical uri 472s ok 1 - $id was recognized - $ref was successfully traversed 472s ok 2 - resources indexed; document canonical_uri is still unset 472s ok 3 - the same document object is indexed under both URIs 472s ok 4 - the schema contains no blessed leaf nodes 472s 1..4 472s ok 1 - $id sets canonical uri 472s # Subtest: anchors 472s ok 1 - $id was recognized - absolute locations use json paths, not anchors 472s ok 2 - internal resource index is correct 472s 1..2 472s ok 2 - anchors 472s # Subtest: $anchor at root without $id 472s ok 1 - $id without anchor was recognized - absolute locations use json paths, not anchors 472s ok 2 - internal resource index is correct 472s 1..2 472s ok 3 - $anchor at root without $id 472s # Subtest: $ids and $anchors in subschemas after $id changes 472s ok 1 - $anchor is legal in a subschema 472s ok 2 - internal resource index is correct 472s 1..2 472s ok 4 - $ids and $anchors in subschemas after $id changes 472s # Subtest: invalid $id and $anchor 472s ok 1 - bad $id and $anchor are detected, even if bad definitions are not traversed 472s ok 2 - "bad" $ids and $anchors that are not actually keywords are not reported as errors 472s 1..2 472s ok 5 - invalid $id and $anchor 472s # Subtest: nested $ids 472s ok 1 - errors have the correct location 472s ok 2 - properly resolved all the nested $ids 472s 1..2 472s ok 6 - nested $ids 472s # Subtest: multiple documents, each using canonical_uri = "" 472s ok 1 - evaluation of schema1 472s ok 2 - resources in initial schema are indexed 472s ok 3 - successful evaluation of schema2 472s ok 4 - resources in second schema are indexed; all resources from first schema are preserved except uri="" 472s 1..4 472s ok 7 - multiple documents, each using canonical_uri = "" 472s # Subtest: multiple documents, each using canonical_uri = "", collisions in other resources 472s ok 1 - evaluation of schema1 472s ok 2 - resources in initial schema are indexed 472s ok 3 - schema2 cannot be evaluated - an internal $id collides with an existing resource 472s 1..3 472s ok 8 - multiple documents, each using canonical_uri = "", collisions in other resources 472s # Subtest: resource collisions in canonical uris 472s ok 1 - detected collision between a document's initial uri and a document's subschema's uri 472s ok 2 - detected collision between two document subschema uris 472s 1..2 472s ok 9 - resource collisions in canonical uris 472s # Subtest: relative uri in $id 472s ok 1 - root schema location is correctly identified 472s ok 2 - properly able to traverse a recursive schema using a relative $id 472s 1..2 472s ok 10 - relative uri in $id 472s 1..10 472s ok 473s t/formats.t ............................. 473s # Subtest: no validation 473s ok 1 - validate_formats=0 disables format assertion behaviour; annotation is still produced 473s ok 2 - format validation can be turned off in evaluate() 473s 1..2 473s ok 1 - no validation 473s # Subtest: simple validation 473s ok 1 - non-string values are valid, and produce an annotation 473s ok 2 - simple success 473s ok 3 - simple failure 473s ok 4 - format_validation defaults to false 473s ok 5 - format validation can be turned on in evaluate() 473s ok 6 - ...but the value is still false on the object 473s 1..6 473s ok 2 - simple validation 473s # Subtest: override a format sub 473s ok 1 - check syntax of override to existing format via constructor 473s ok 2 - check syntax of override format name to existing format via setter 473s ok 3 - check syntax of override definition value to existing format via setter 473s ok 4 - type is required if passing a hashref 473s ok 5 - cannot override a core format to support a different data type 473s ok 6 - can override a core format definition, as long as it uses the same type 473s ok 7 - check syntax of implementation for a new format 473s ok 8 - check syntax of implementation when adding an override to existing format 473s ok 9 - check syntax of implementation when adding a new format 473s ok 10 - swapping out format implementation turns success into failure; wrong types are still valid 473s ok 11 - can override a custom format definition to use a different type 473s 1..11 473s ok 3 - override a format sub 473s # Subtest: toggle validate_formats after adding schema 473s ok 1 - assertion behaviour is off initially 473s ok 2 - assertion behaviour can be enabled later with an already-loaded schema 473s ok 3 - valid assertion behaviour does not die 473s ok 4 - a schema document can be used with another evaluator with assertion behaviour 473s ok 5 - valid assertion behaviour does not die 473s 1..5 473s ok 4 - toggle validate_formats after adding schema 473s # Subtest: custom metaschemas 473s ok 1 - custom metaschema using format-assertion=true validates formats 473s ok 2 - custom metaschema using format-assertion=true validates formats 473s 1..2 473s ok 5 - custom metaschemas 473s # Subtest: core formats added after draft7 473s ok 1 - duration is not implemented in draft7 473s ok 2 - uuid is not implemented in draft7 473s 1..2 473s ok 6 - core formats added after draft7 473s # Subtest: unimplemented core formats 473s ok 1 - draft4 with validate_formats = 1, no error when an unimplemented core format is used 473s ok 2 - draft6 with validate_formats = 1, no error when an unimplemented core format is used 473s ok 3 - draft7 with validate_formats = 1, no error when an unimplemented core format is used 473s ok 4 - draft2019-09 with validate_formats = 1, no error when an unimplemented core format is used 473s ok 5 - draft2020-12 with validate_formats = 1, no error when an unimplemented core format is used 473s ok 6 - draft2020-12 with Format-Assertion vocabulary: error when an unimplemented core format is used 473s ok 7 - draft2020-12 with Format-Assertion vocabulary: error is seen even when containing subschema would be true 473s 1..7 473s ok 7 - unimplemented core formats 473s # Subtest: unknown custom formats 473s ok 1 - draft4: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 473s ok 2 - draft6: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 473s ok 3 - draft7: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure 473s ok 4 - draft2019-09: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 473s ok 5 - draft2020-12: for format validation with the Format-Annotation vocabulary, unrecognized format attributes do not cause validation failure; annotation is still produced 473s ok 6 - draft2020-12: for format validation with the Format-Assertion vocabulary, unrecognized format attributes are detected at traverse time 473s 1..6 473s ok 8 - unknown custom formats 473s # Subtest: format: pure_integer 473s ok 1 - pure_integer format with type 473s ok 2 - pure_integer format without type 473s 1..2 473s ok 9 - format: pure_integer 473s # Subtest: formats supporting multiple core types 473s ok 1 - int64 format without type - accepts both numbers and strings 473s ok 2 - int64 format without type - accepts both numbers and strings 473s 1..2 473s ok 10 - formats supporting multiple core types 473s # Subtest: stringy numbers with a numeric format 473s ok 1 - FormatAnnotation+validate_formats: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 473s ok 2 - FormatAssertion: strings that look like numbers can be validated against a numeric format when stringy_numbers=1 473s 1..2 473s ok 11 - stringy numbers with a numeric format 473s 1..11 473s ok 473s t/invalid-schemas-draft2019-09.t ........ 473s # AUTHOR_TESTING: 473s # AUTOMATED_TESTING: 1 473s # EXTENDED_TESTING: 473s # NO_TODO: 473s # TEST_DIR: 473s # NO_SHORT_CIRCUIT: 473s # 473s # running tests in /tmp/autopkgtest.KTsMu3/autopkgtest_tmp/smokeJpyEyJ/t/invalid-schemas-draft2019-09 against draft2019-09... 473s # 473s ok 1 - invalid-input.json: "invalid user input: type (string)" - "graceful error from 'type' (string)" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "type value is not a string", 473s # "instanceLocation": "", 473s # "keywordLocation": "/type" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "type value is not a string", 473s # "instanceLocation": "", 473s # "keywordLocation": "/type" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s ok 2 - invalid-input.json: "invalid user input: type (array)" - "graceful error from 'type' (array)" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "unrecognized type \"\"", 473s # "instanceLocation": "", 473s # "keywordLocation": "/type" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "unrecognized type \"\"", 473s # "instanceLocation": "", 473s # "keywordLocation": "/type" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s # 473s ok 3 - ref.json: "invalid $ref: unencoded characters" - "unencoded characters in $ref uri" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "$ref value is not a valid URI reference", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$defs/foo/$ref" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "$ref value is not a valid URI reference", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$defs/foo/$ref" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s ok 4 - ref.json: "invalid $ref: non-ascii characters" - "non-ascii characters in $ref uri" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "$ref value is not a valid URI reference", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$defs/foo/$ref" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "$ref value is not a valid URI reference", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$defs/foo/$ref" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s # 473s ok 5 - vocabulary.json: "invalid $vocabulary: need boolean values" - "an invalid $vocabulary value (value should be a boolean)" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "$vocabulary value at \"https://foo.com\" is not a boolean", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/https:~1~1foo.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s ok 6 - vocabulary.json: "invalid $vocabulary: uri must not have unencoded characters" - "unencoded characters in $vocabulary uri" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "\"http://foo^bar/path\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "\"http://foo^bar/path\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/http:~1~1foo^bar~1path" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s ok 7 - vocabulary.json: "invalid $vocabulary: non-ascii characters in uri" - "non-ascii characters in $vocabulary uri" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "\"https://ಠ_ಠ.com\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/https:~1~1ಠ_ಠ.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s ok 8 - vocabulary.json: "invalid $vocabulary: missing scheme" - "$vocabulary uri is missing a scheme" { 473s # result: { 473s # "errors": [ 473s # { 473s # "error": "\"foo.com\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/foo.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s # short-circuited result: { 473s # "errors": [ 473s # { 473s # "error": "\"foo.com\" is not a valid URI", 473s # "instanceLocation": "", 473s # "keywordLocation": "/$vocabulary/foo.com" 473s # } 473s # ], 473s # "valid": false 473s # } 473s ok 1 - test passes: data is valid: false 473s 1..1 473s } 473s # 473s # 473s # generated with: Test::JSON::Schema::Acceptance 1.026 473s # specification version: draft2019-09 473s # using custom test directory: t/invalid-schemas-draft2019-09 473s # optional tests included: no 473s # 473s # filename pass todo-fail fail 473s # --------------------------------------------------------------- 473s # invalid-input.json 2 0 0 473s # ref.json 2 0 0 473s # vocabulary.json 4 0 0 473s # --------------------------------------------------------------- 473s # TOTAL 8 0 0 473s # 473s # Congratulations, all non-optional tests are passing! 473s # 473s ok 9 - no leaks in the main evaluator object 473s ok 10 - no leaks in the short-circuiting evaluator object 473s 1..10 473s ok 474s t/max_traversal_depth.t ................. 474s ok 1 - evaluation is halted when traversal gets too deep 474s ok 2 - evaluation is halted when an instance location is evaluated against the same schema location a second time 474s ok 3 - the seen counter does not confuse URI paths and fragments: /properties/foo vs \#/properties/foo 474s ok 4 - the seen counter does not confuse two subschemas that both apply the same definition to the same instance location 474s 1..4 474s ok 475s t/multipleOf.t .......................... 475s # Subtest: multipleOf, native types 475s ok 1 - 4 is a multiple of 2 475s ok 2 - 4 is a multiple of 1 475s ok 3 - 4 is not a multiple of 3 475s ok 4 - 4.5 is a multiple of 1.5 475s ok 5 - 4.5 is not a multiple of 1 475s ok 6 - 4.5 is not a multiple of 3 475s ok 7 - 4 is a multiple of 2 475s ok 8 - 4 is not a multiple of 2.5 475s ok 9 - 5 is a multiple of 2.5 475s ok 10 - 4.5 is a multiple of 2.25 475s ok 11 - 4.5 is not a multiple of 2.5 475s ok 12 - 4.5 is not a multiple of 2 475s ok 13 - -9223372036854775808 is a multiple of 0.5 475s ok 14 - 9223372036854775807 is a multiple of 0.5 475s ok 15 - 18446744073709551615 is a multiple of 0.5 475s 1..15 475s ok 1 - multipleOf, native types 475s # Subtest: multipleOf, data is a bignum 475s ok 1 - 4 is a multiple of 2 475s ok 2 - 4 is a multiple of 1 475s ok 3 - 4 is not a multiple of 3 475s ok 4 - 4.5 is a multiple of 1.5 475s ok 5 - 4.5 is not a multiple of 1 475s ok 6 - 4.5 is not a multiple of 3 475s ok 7 - 4 is a multiple of 2 475s ok 8 - 4 is not a multiple of 2.5 475s ok 9 - 5 is a multiple of 2.5 475s ok 10 - 4.5 is a multiple of 2.25 475s ok 11 - 4.5 is not a multiple of 2.5 475s ok 12 - 4.5 is not a multiple of 2 475s ok 13 - -9223372036854775808 is a multiple of 0.5 475s ok 14 - 9223372036854775807 is a multiple of 0.5 475s ok 15 - 18446744073709551615 is a multiple of 0.5 475s 1..15 475s ok 2 - multipleOf, data is a bignum 475s # Subtest: multipleOf, multipleOf is a bignum 475s ok 1 - 4 is a multiple of 2 475s ok 2 - 4 is a multiple of 1 475s ok 3 - 4 is not a multiple of 3 475s ok 4 - 4.5 is a multiple of 1.5 475s ok 5 - 4.5 is not a multiple of 1 475s ok 6 - 4.5 is not a multiple of 3 475s ok 7 - 4 is a multiple of 2 475s ok 8 - 4 is not a multiple of 2.5 475s ok 9 - 5 is a multiple of 2.5 475s ok 10 - 4.5 is a multiple of 2.25 475s ok 11 - 4.5 is not a multiple of 2.5 475s ok 12 - 4.5 is not a multiple of 2 475s ok 13 - -9223372036854775808 is a multiple of 0.5 475s ok 14 - 9223372036854775807 is a multiple of 0.5 475s ok 15 - 18446744073709551615 is a multiple of 0.5 475s 1..15 475s ok 3 - multipleOf, multipleOf is a bignum 475s # Subtest: multipleOf, data and multipleOf are bignums 475s ok 1 - 4 is a multiple of 2 475s ok 2 - 4 is a multiple of 1 475s ok 3 - 4 is not a multiple of 3 475s ok 4 - 4.5 is a multiple of 1.5 475s ok 5 - 4.5 is not a multiple of 1 475s ok 6 - 4.5 is not a multiple of 3 475s ok 7 - 4 is a multiple of 2 475s ok 8 - 4 is not a multiple of 2.5 475s ok 9 - 5 is a multiple of 2.5 475s ok 10 - 4.5 is a multiple of 2.25 475s ok 11 - 4.5 is not a multiple of 2.5 475s ok 12 - 4.5 is not a multiple of 2 475s ok 13 - -9223372036854775808 is a multiple of 0.5 475s ok 14 - 9223372036854775807 is a multiple of 0.5 475s ok 15 - 18446744073709551615 is a multiple of 0.5 475s 1..15 475s ok 4 - multipleOf, data and multipleOf are bignums 475s 1..4 475s ok 475s t/output_format.t ....................... 475s ok 1 - output_format defaults to basic 475s ok 2 - Result object gets the output_format from the evaluator 475s ok 3 - basic format includes all errors linearly 475s ok 4 - flag format only includes the valid property 475s ok 5 - terse format omits errors from redundant applicator keywords 475s ok 6 - basic format includes all errors linearly 475s ok 7 - terse format does not omit these crucial errors 475s # Subtest: strict_basic 475s ok 1 - strict_basic turns json pointers into URIs, including uri escapes 475s 1..1 475s ok 8 - strict_basic 475s # Subtest: AND two result objects together 475s ok 1 - ANDing true and false results = invalid, but errors and annotations both preserved 475s ok 2 - ANDing two true results = valid 475s ok 3 - ANDing two false results = invalid 475s ok 4 - only Result objects can be processed 475s ok 5 - ANDing a result with itself is a no-op 475s 1..5 475s ok 9 - AND two result objects together 475s # Subtest: annotations 475s ok 1 - by default, annotations are included in the formatted output 475s ok 2 - but inclusion can be disabled 475s 1..2 475s ok 10 - annotations 475s # Subtest: data_only 475s ok 1 - data_only format outputs a string of data locations only, with duplicates removed 475s ok 2 - data_only format uses keyword locations when result came from traverse 475s 1..2 475s ok 11 - data_only 475s 1..11 475s ok 476s t/pattern.t ............................. 476s ok 1 - unchanged LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 476s ok 2 - unchanged LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 476s ok 3 - upgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 476s ok 4 - upgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 476s ok 5 - downgraded LATIN SMALL LETTER E WITH ACUTE does not match the ascii range [a-z] 476s ok 6 - downgraded LATIN SMALL LETTER E WITH ACUTE does match the "word" character class, because unicode semantics are used for matching 476s # Subtest: empty pattern 476s ok 1 - empty pattern in "pattern" will correctly match 476s ok 2 - empty pattern in "patternProperties" will correctly match 476s 1..2 476s ok 7 - empty pattern 476s 1..7 476s ok 477s t/ref.t ................................. 477s # Subtest: local JSON pointer 477s ok 1 - can follow local $ref to a true schema 477s ok 2 - can follow local $ref to a false schema 477s ok 3 - got error for unresolvable ref 477s ok 4 - no exception 477s 1..4 477s ok 1 - local JSON pointer 477s # Subtest: fragment with URI-escaped and JSON Pointer-escaped characters 477s ok 1 - can follow $ref with escaped components 477s 1..1 477s ok 2 - fragment with URI-escaped and JSON Pointer-escaped characters 477s # Subtest: local anchor 477s ok 1 - can follow local $ref to an $anchor to a true schema 477s ok 2 - can follow local $ref to an $anchor to a false schema 477s ok 3 - got error for unresolvable ref 477s ok 4 - no exception 477s 1..4 477s ok 3 - local anchor 477s # Subtest: $id with an empty fragment 477s ok 1 - $id with empty fragment can be found by $ref that did not include it; fragment not included in error either 477s 1..1 477s ok 4 - $id with an empty fragment 477s # Subtest: $recursiveRef without nesting behaves like $ref 477s ok 1 - $recursiveRef without nested $recursiveAnchor behaves like $ref 477s 1..1 477s ok 5 - $recursiveRef without nesting behaves like $ref 477s # Subtest: $recursiveRef without $recursiveAnchor behaves like $ref 477s ok 1 - $recursiveRef without $recursiveAnchor behaves like $ref 477s 1..1 477s ok 6 - $recursiveRef without $recursiveAnchor behaves like $ref 477s # Subtest: $recursiveAnchor must be at a schema resource root 477s ok 1 - $recursiveAnchor can only appear at a schema resource root 477s ok 2 - schema now valid when an $id is added 477s ok 3 - $recursiveAnchor can only appear at a schema resource root 477s ok 4 - properly detecting a bad $recursiveAnchor even before passing through a $ref 477s 1..4 477s ok 7 - $recursiveAnchor must be at a schema resource root 477s # Subtest: $recursiveAnchor and $recursiveRef - standard usecases 477s ok 1 - validation requires the override that is not in scope 477s ok 2 - $recursiveRef requires a $recursiveAnchor that does not exist 477s ok 3 - $recursiveRef with both $recursiveAnchors in scope 477s 1..3 477s ok 8 - $recursiveAnchor and $recursiveRef - standard usecases 477s # Subtest: $recursiveRef without $recursiveAnchor 477s ok 1 - $ref - one level recursion 477s ok 2 - $recursiveRef with no $recursiveAnchor in scope has the same outcome 477s 1..2 477s ok 9 - $recursiveRef without $recursiveAnchor 477s # Subtest: $recursiveAnchor in our dynamic scope, but not in the target schema 477s ok 1 - $recursiveAnchor does not exist in the target schema - local recursion only, so integers match 477s ok 2 - $recursiveAnchor does not exist in the target schema - no recursion 477s ok 3 - $recursiveAnchor does not exist in the target schema - local recursion only 477s 1..3 477s ok 10 - $recursiveAnchor in our dynamic scope, but not in the target schema 477s # Subtest: $dynamicRef without nesting behaves like $ref 477s ok 1 - $dynamicRef without nested $dynamicAnchor behaves like $ref 477s 1..1 477s ok 11 - $dynamicRef without nesting behaves like $ref 477s # Subtest: $recursiveRef without $dynamicAnchor behaves like $ref 477s ok 1 - $dynamicRef without $dynamicAnchor behaves like $ref 477s 1..1 477s ok 12 - $recursiveRef without $dynamicAnchor behaves like $ref 477s # Subtest: $dynamicAnchor and $dynamicRef - standard usecases 477s ok 1 - validation requires the override that is not in scope 477s ok 2 - $dynamicRef requires a $dynamicAnchor that does not exist 477s ok 3 - $dynamicRef must use a URI containing the dynamic anchor fragment 477s ok 4 - there is no outer $dynamicAnchor in scope to recurse to 477s ok 5 - we have an outer $dynamicAnchor, and are using the fragment URI, but we used $ref rather than $dynamicRef 477s ok 6 - there is an outer $dynamicAnchor in scope to recurse to, but $dynamicRef must use a URI containing the dynamic anchor fragment 477s ok 7 - now everything is in place to recurse to the base 477s ok 8 - there is no $dynamicAnchor at the original target, and no anchor used in the target URI 477s 1..8 477s ok 13 - $dynamicAnchor and $dynamicRef - standard usecases 477s # Subtest: $dynamicRef to $dynamicAnchor not directly in the evaluation path 477s ok 1 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type does not match 477s ok 2 - regular $anchor in dynamic scope should not be used by $dynamicRef 477s ok 3 - some other $dynamicAnchor in dynamic scope should not be used by $dynamicRef 477s ok 4 - second dynamic anchor is not in the evaluation path, but we found it via dynamic scope - type matches 477s ok 5 - the first dynamic scope is set by document uri, not just the $id keyword 477s 1..5 477s ok 14 - $dynamicRef to $dynamicAnchor not directly in the evaluation path 477s # Subtest: after leaving a dynamic scope, it should not be used by a $dynamicRef 477s ok 1 - first_scope is no longer in scope, so it is not used by $dynamicRef 477s 1..1 477s ok 15 - after leaving a dynamic scope, it should not be used by a $dynamicRef 477s # Subtest: anchors do not match 477s ok 1 - $dynamicRef goes to enhanced schema 477s ok 2 - $dynamicRef -> $dynamicAnchor -> $anchor is a no go: we stay at the original schema 477s 1..2 477s ok 16 - anchors do not match 477s # Subtest: reference to a non-schema location 477s ok 1 - $ref to a non-schema is not permitted 477s ok 2 - $dynamicRef to a non-schema is not permitted 477s ok 3 - $recursiveRef to a non-schema is not permitted 477s ok 4 - $schema to a non-schema is not permitted 477s 1..4 477s ok 17 - reference to a non-schema location 477s # Subtest: evaluate at a non-schema location 477s ok 1 - evaluating at a non-schema location is not permitted 477s 1..1 477s ok 18 - evaluate at a non-schema location 477s 1..18 477s ok 478s t/serialization.t ....................... 478s # Seeded srand with seed '20241116' from local date. 478s ok 1 - evaluated against an empty schema 478s ok 2 - evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 478s ok 3 - evaluate data against schema with custom dialect; format-annotation is used 478s ok 4 - frozen object contains all the right keys 478s ok 5 - thawed object contains all the right keys 478s ok 6 - evaluate again against an empty schema 478s ok 7 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 478s ok 8 - evaluate again against an empty schema 478s ok 9 - core vocabulary_class for a different spec version works in a thawed object 478s ok 10 - format-assertion vocabulary_class works in a thawed object 478s ok 11 - metaschema_vocabulary_classes works in a thawed object 478s ok 12 - media_type works in a thawed object 478s ok 13 - encoding works in a thawed object 478s # Subtest: thaw object in a separate process 478s ok 1 - thawed object in a new process contains all the right keys 478s ok 2 - in thawed object, evaluate data against schema with custom dialect; format and unknown keywords are collected as annotations 478s ok 3 - evaluate data against schema with custom dialect; format-assertion is used 478s 1..3 478s ok 14 - thaw object in a separate process 478s ok 15 - child process finished successfully 478s 1..15 478s ok 479s t/specification_version.t ............... 479s ok 1 - unrecognized $SPECIFICATION_VERSION 479s # Subtest: specification aliases 479s ok 1 - 2020-12 is an alias for draft2020-12 479s ok 2 - 2019-09 is an alias for draft2019-09 479s ok 3 - 7 is an alias for draft7 479s 1..3 479s ok 2 - specification aliases 479s # Subtest: $ref and older specification versions 479s ok 1 - $schema and $ref cannot be used together, when $schema is too old 479s 1..1 479s ok 3 - $ref and older specification versions 479s # Subtest: <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 479s ok 1 - keywords adjacent to $ref are not evaluated 479s 1..1 479s ok 4 - <= draft7: $ref in combination with any other keyword causes the other keywords to be ignored 479s # Subtest: $ref adjacent to a path used in a $ref 479s ok 1 - the presence of $ref also blocks the use of other $refs to adjacent locations 479s 1..1 479s ok 5 - $ref adjacent to a path used in a $ref 479s # Subtest: $defs support 479s ok 1 - $defs is not recognized in <= draft7 479s ok 2 - $defs is supported in > draft7 479s 1..2 479s ok 6 - $defs support 479s # Subtest: definitions support 479s ok 1 - definitions is not recognized in >= draft2019-09 479s ok 2 - warned when using no-longer-supported keyword 479s ok 3 - definitions is supported in <= draft7 479s 1..3 479s ok 7 - definitions support 479s # Subtest: dependencies, dependentRequired, dependentSchemas 479s ok 1 - dependencies is not recognized in >= draft2019-09 479s ok 2 - warned when using no-longer-supported keyword 479s ok 3 - dependentRequired is supported in >= draft2019-09 479s ok 4 - dependentSchemas is supported in >= draft2019-09 479s ok 5 - dependencies is supported in <= draft7 479s ok 6 - dependentRequired is not recognized in <= draft7 479s ok 7 - dependentSchemas is not recognized in <= draft7 479s 1..7 479s ok 8 - dependencies, dependentRequired, dependentSchemas 479s # Subtest: prefixItems, items and additionalItems 479s ok 1 - prefixitems+items works when specification_version >= draft2020-12 479s ok 2 - array form of items not supported when specification_version >= draft2020-12 479s ok 3 - additionalitems not recognized when specification_version >= draft2020-12 479s ok 4 - warned when using no-longer-supported keyword 479s ok 5 - prefixitems not supported when specification_version specifies other than draft2020-12 479s ok 6 - array-based items in >= draft2020-12 479s ok 7 - prefixItems + additionalItems 479s ok 8 - warned when using no-longer-supported keyword 479s ok 9 - prefixItems + schema-based items 479s ok 10 - schema-based items + additionalItems, failure case 479s ok 11 - warned when using no-longer-supported keyword 479s ok 12 - schema-based items + additionalItems, passing case 479s ok 13 - warned when using no-longer-supported keyword 479s 1..13 479s ok 9 - prefixItems, items and additionalItems 479s 1..9 479s ok 479s t/strict.t .............................. 479s ok 1 - strict defaults to false 479s ok 2 - by default, unknown keywords are allowed in evaluate() 479s ok 3 - strict mode disallows unknown keywords during evaluation via a config override 479s ok 4 - by default, unknown keywords are allowed in validate_schema() 479s ok 5 - strict mode disallows unknown keywords in validate_schema() via a config override 479s ok 6 - strict mode disallows unknown keywords during evaluation, even if the document was already traversed 479s ok 7 - strict mode disallows unknown keywords in the schema data passed to validate_schema() 479s ok 8 - strict mode disallows unknown keywords during traverse 479s ok 9 - strict mode only detected one property this time - bloop is evaluated 479s ok 10 - strict mode detects unknown keywords using draft7 479s 1..10 479s ok 480s t/stringy-numbers.t ..................... 480s # stringy_numbers = 0 480s ok 1 - strings cannot be used in place of numbers in schema for multipleOf 480s ok 2 - strings cannot be used in place of numbers in schema for maximum 480s ok 3 - strings cannot be used in place of numbers in schema for exclusiveMaximum 480s ok 4 - strings cannot be used in place of numbers in schema for minimum 480s ok 5 - strings cannot be used in place of numbers in schema for exclusiveMinimum 480s ok 6 - strings that do not look like numbers are never valid as numbers 480s ok 7 - by default "type": "string" does not accept numbers 480s ok 8 - real numbers are always evaluated 480s ok 9 - by default, stringy numbers are not evaluated by numeric keywords 480s ok 10 - data was not mutated 480s ok 11 - by default, stringy numbers are not the same as numbers using comparison keywords 480s ok 12 - data was not mutated 480s # stringy_numbers = 1 480s ok 13 - strings cannot be used in place of numbers in schema for multipleOf 480s ok 14 - strings cannot be used in place of numbers in schema for maximum 480s ok 15 - strings cannot be used in place of numbers in schema for exclusiveMaximum 480s ok 16 - strings cannot be used in place of numbers in schema for minimum 480s ok 17 - strings cannot be used in place of numbers in schema for exclusiveMinimum 480s ok 18 - strings that do not look like numbers are never valid as numbers 480s ok 19 - using stringy numbers, numeric strings are treated as numbers but are still not always integers 480s ok 20 - real numbers are always evaluated 480s ok 21 - with the config enabled, stringy numbers are treated as numbers by numeric keywords 480s ok 22 - data was not mutated 480s ok 23 - with the config enabled, stringy numbers are the same as numbers using comparison keywords 480s ok 24 - data was not mutated 480s 1..24 480s ok 481s t/traverse.t ............................ 481s # Subtest: traversal with callbacks 481s ok 1 - errors encountered during traversal are returned 481s ok 2 - callback for erroneous keyword was not called 481s ok 3 - extracted all the real $refs out of the schema, with locations and canonical targets 481s ok 4 - identified all subschemas 481s 1..4 481s ok 1 - traversal with callbacks 481s # Subtest: errors when parsing $schema keyword 481s ok 1 - $schema is not a string 481s ok 2 - $schema is not a URI 481s 1..2 481s ok 2 - errors when parsing $schema keyword 481s # Subtest: default metaschema 481s ok 1 - dialect is properly determined 481s ok 2 - error within $defs is found, showing both Core and Applicator vocabularies are used 481s 1..2 481s ok 3 - default metaschema 481s # Subtest: traversing a dialect with different core keywords 481s ok 1 - dialect changes at root, with $id - dialect is switched in time to get a new keyword list for the core vocabulary 481s ok 2 - no errors when parsing this schema 481s ok 3 - switched dialect in time to extract all identifiers, from root and definition 481s ok 4 - dialect changes at root, no $id - dialect is switched in time to get a new keyword list for the core vocabulary 481s ok 5 - dialect changes below root - dialect is switched in time to get a new keyword list for the core vocabulary 481s 1..5 481s ok 4 - traversing a dialect with different core keywords 481s # Subtest: $schema without an $id, below the root 481s ok 1 - $schema cannot exist without an $id, or at the root 481s 1..1 481s ok 5 - $schema without an $id, below the root 481s # Subtest: traverse with overridden metaschema_uri 481s ok 1 - metaschema_uri is overridden with a bad schema: same errors are returned 481s ok 2 - metaschema_uri is overridden with a bad schema: errors contain the right locations 481s ok 3 - metaschema_uri is overridden with a bad schema and there is a traversal path: errors contain the right locations 481s ok 4 - determined vocabularies to use for this schema 481s 1..4 481s ok 6 - traverse with overridden metaschema_uri 481s # Subtest: start traversing below the document root 481s ok 1 - identified the overridden location of all errors during traverse 481s ok 2 - identifiers are correctly extracted when traversing below the document root 481s 1..2 481s ok 7 - start traversing below the document root 481s 1..7 481s ok 481s t/type.t ................................ 481s # Subtest: inflated data, type: array 481s ok 1 - is_type("array", []) is true 481s ok 2 - get_type([]) = array 481s ok 3 - is_type("boolean", []) is false 481s ok 4 - is_type("integer", []) is false 481s ok 5 - is_type("null", []) is false 481s ok 6 - is_type("number", []) is false 481s ok 7 - is_type("object", []) is false 481s ok 8 - is_type("string", []) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("array", [1]) is true 481s ok 11 - get_type([1]) = array 481s ok 12 - is_type("boolean", [1]) is false 481s ok 13 - is_type("integer", [1]) is false 481s ok 14 - is_type("null", [1]) is false 481s ok 15 - is_type("number", [1]) is false 481s ok 16 - is_type("object", [1]) is false 481s ok 17 - is_type("string", [1]) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 1 - inflated data, type: array 481s # Subtest: inflated data, type: boolean 481s ok 1 - is_type("boolean", false) is true 481s ok 2 - get_type(false) = boolean 481s ok 3 - is_type("array", false) is false 481s ok 4 - is_type("integer", false) is false 481s ok 5 - is_type("null", false) is false 481s ok 6 - is_type("number", false) is false 481s ok 7 - is_type("object", false) is false 481s ok 8 - is_type("string", false) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("boolean", true) is true 481s ok 11 - get_type(true) = boolean 481s ok 12 - is_type("array", true) is false 481s ok 13 - is_type("integer", true) is false 481s ok 14 - is_type("null", true) is false 481s ok 15 - is_type("number", true) is false 481s ok 16 - is_type("object", true) is false 481s ok 17 - is_type("string", true) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 2 - inflated data, type: boolean 481s # Subtest: inflated data, type: integer 481s ok 1 - is_type("integer", 0) is true 481s ok 2 - is_type("number", 0) is true 481s ok 3 - get_type(0) = integer 481s ok 4 - is_type("array", 0) is false 481s ok 5 - is_type("boolean", 0) is false 481s ok 6 - is_type("null", 0) is false 481s ok 7 - is_type("object", 0) is false 481s ok 8 - is_type("string", 0) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("integer", -1) is true 481s ok 11 - is_type("number", -1) is true 481s ok 12 - get_type(-1) = integer 481s ok 13 - is_type("array", -1) is false 481s ok 14 - is_type("boolean", -1) is false 481s ok 15 - is_type("null", -1) is false 481s ok 16 - is_type("object", -1) is false 481s ok 17 - is_type("string", -1) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s ok 19 - is_type("integer", 2) is true 481s ok 20 - is_type("number", 2) is true 481s ok 21 - get_type(2) = integer 481s ok 22 - is_type("array", 2) is false 481s ok 23 - is_type("boolean", 2) is false 481s ok 24 - is_type("null", 2) is false 481s ok 25 - is_type("object", 2) is false 481s ok 26 - is_type("string", 2) is false 481s ok 27 - data is not tampered with while it is tested (not dualvar) 481s ok 28 - is_type("integer", 2.0) is true 481s ok 29 - is_type("number", 2.0) is true 481s ok 30 - get_type(2.0) = integer 481s ok 31 - is_type("array", 2.0) is false 481s ok 32 - is_type("boolean", 2.0) is false 481s ok 33 - is_type("null", 2.0) is false 481s ok 34 - is_type("object", 2.0) is false 481s ok 35 - is_type("string", 2.0) is false 481s ok 36 - data is not tampered with while it is tested (not dualvar) 481s ok 37 - is_type("integer", 2147483647) is true 481s ok 38 - is_type("number", 2147483647) is true 481s ok 39 - get_type(2147483647) = integer 481s ok 40 - is_type("array", 2147483647) is false 481s ok 41 - is_type("boolean", 2147483647) is false 481s ok 42 - is_type("null", 2147483647) is false 481s ok 43 - is_type("object", 2147483647) is false 481s ok 44 - is_type("string", 2147483647) is false 481s ok 45 - data is not tampered with while it is tested (not dualvar) 481s ok 46 - is_type("integer", 2147483648.0) is true 481s ok 47 - is_type("number", 2147483648.0) is true 481s ok 48 - get_type(2147483648.0) = integer 481s ok 49 - is_type("array", 2147483648.0) is false 481s ok 50 - is_type("boolean", 2147483648.0) is false 481s ok 51 - is_type("null", 2147483648.0) is false 481s ok 52 - is_type("object", 2147483648.0) is false 481s ok 53 - is_type("string", 2147483648.0) is false 481s ok 54 - data is not tampered with while it is tested (not dualvar) 481s ok 55 - is_type("integer", 9.22337203685478e+18) is true 481s ok 56 - is_type("number", 9.22337203685478e+18) is true 481s ok 57 - get_type(9.22337203685478e+18) = integer 481s ok 58 - is_type("array", 9.22337203685478e+18) is false 481s ok 59 - is_type("boolean", 9.22337203685478e+18) is false 481s ok 60 - is_type("null", 9.22337203685478e+18) is false 481s ok 61 - is_type("object", 9.22337203685478e+18) is false 481s ok 62 - is_type("string", 9.22337203685478e+18) is false 481s ok 63 - data is not tampered with while it is tested (not dualvar) 481s ok 64 - is_type("integer", 9.22337203685478e+18) is true 481s ok 65 - is_type("number", 9.22337203685478e+18) is true 481s ok 66 - get_type(9.22337203685478e+18) = integer 481s ok 67 - is_type("array", 9.22337203685478e+18) is false 481s ok 68 - is_type("boolean", 9.22337203685478e+18) is false 481s ok 69 - is_type("null", 9.22337203685478e+18) is false 481s ok 70 - is_type("object", 9.22337203685478e+18) is false 481s ok 71 - is_type("string", 9.22337203685478e+18) is false 481s ok 72 - data is not tampered with while it is tested (not dualvar) 481s ok 73 - is_type("integer", 1.84467440737096e+19) is true 481s ok 74 - is_type("number", 1.84467440737096e+19) is true 481s ok 75 - get_type(1.84467440737096e+19) = integer 481s ok 76 - is_type("array", 1.84467440737096e+19) is false 481s ok 77 - is_type("boolean", 1.84467440737096e+19) is false 481s ok 78 - is_type("null", 1.84467440737096e+19) is false 481s ok 79 - is_type("object", 1.84467440737096e+19) is false 481s ok 80 - is_type("string", 1.84467440737096e+19) is false 481s ok 81 - data is not tampered with while it is tested (not dualvar) 481s ok 82 - is_type("integer", 3.68934881474191e+19) is true 481s ok 83 - is_type("number", 3.68934881474191e+19) is true 481s ok 84 - get_type(3.68934881474191e+19) = integer 481s ok 85 - is_type("array", 3.68934881474191e+19) is false 481s ok 86 - is_type("boolean", 3.68934881474191e+19) is false 481s ok 87 - is_type("null", 3.68934881474191e+19) is false 481s ok 88 - is_type("object", 3.68934881474191e+19) is false 481s ok 89 - is_type("string", 3.68934881474191e+19) is false 481s ok 90 - data is not tampered with while it is tested (not dualvar) 481s ok 91 - is_type("integer", 1000000000000000) is true 481s ok 92 - is_type("number", 1000000000000000) is true 481s ok 93 - get_type(1000000000000000) = integer 481s ok 94 - is_type("array", 1000000000000000) is false 481s ok 95 - is_type("boolean", 1000000000000000) is false 481s ok 96 - is_type("null", 1000000000000000) is false 481s ok 97 - is_type("object", 1000000000000000) is false 481s ok 98 - is_type("string", 1000000000000000) is false 481s ok 99 - data is not tampered with while it is tested (not dualvar) 481s ok 100 - is_type("integer", Math::BigInt->new('100000000000000000000')) is true 481s ok 101 - is_type("number", Math::BigInt->new('100000000000000000000')) is true 481s ok 102 - get_type(Math::BigInt->new('100000000000000000000')) = integer 481s ok 103 - is_type("array", Math::BigInt->new('100000000000000000000')) is false 481s ok 104 - is_type("boolean", Math::BigInt->new('100000000000000000000')) is false 481s ok 105 - is_type("null", Math::BigInt->new('100000000000000000000')) is false 481s ok 106 - is_type("object", Math::BigInt->new('100000000000000000000')) is false 481s ok 107 - is_type("string", Math::BigInt->new('100000000000000000000')) is false 481s ok 108 - data is not tampered with while it is tested (not dualvar) 481s 1..108 481s ok 3 - inflated data, type: integer 481s # Subtest: inflated data, type: null 481s ok 1 - is_type("null", null) is true 481s ok 2 - get_type(null) = null 481s ok 3 - is_type("array", null) is false 481s ok 4 - is_type("boolean", null) is false 481s ok 5 - is_type("integer", null) is false 481s ok 6 - is_type("number", null) is false 481s ok 7 - is_type("object", null) is false 481s ok 8 - is_type("string", null) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s 1..9 481s ok 4 - inflated data, type: null 481s # Subtest: inflated data, type: number 481s ok 1 - is_type("number", 3.1) is true 481s ok 2 - get_type(3.1) = number 481s ok 3 - is_type("array", 3.1) is false 481s ok 4 - is_type("boolean", 3.1) is false 481s ok 5 - is_type("integer", 3.1) is false 481s ok 6 - is_type("null", 3.1) is false 481s ok 7 - is_type("object", 3.1) is false 481s ok 8 - is_type("string", 3.1) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("number", 12345678901.2) is true 481s ok 11 - get_type(12345678901.2) = number 481s ok 12 - is_type("array", 12345678901.2) is false 481s ok 13 - is_type("boolean", 12345678901.2) is false 481s ok 14 - is_type("integer", 12345678901.2) is false 481s ok 15 - is_type("null", 12345678901.2) is false 481s ok 16 - is_type("object", 12345678901.2) is false 481s ok 17 - is_type("string", 12345678901.2) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s ok 19 - is_type("number", Math::BigFloat->new('0.123')) is true 481s ok 20 - get_type(Math::BigFloat->new('0.123')) = number 481s ok 21 - is_type("array", Math::BigFloat->new('0.123')) is false 481s ok 22 - is_type("boolean", Math::BigFloat->new('0.123')) is false 481s ok 23 - is_type("integer", Math::BigFloat->new('0.123')) is false 481s ok 24 - is_type("null", Math::BigFloat->new('0.123')) is false 481s ok 25 - is_type("object", Math::BigFloat->new('0.123')) is false 481s ok 26 - is_type("string", Math::BigFloat->new('0.123')) is false 481s ok 27 - data is not tampered with while it is tested (not dualvar) 481s 1..27 481s ok 5 - inflated data, type: number 481s # Subtest: inflated data, type: object 481s ok 1 - is_type("object", {}) is true 481s ok 2 - get_type({}) = object 481s ok 3 - is_type("array", {}) is false 481s ok 4 - is_type("boolean", {}) is false 481s ok 5 - is_type("integer", {}) is false 481s ok 6 - is_type("null", {}) is false 481s ok 7 - is_type("number", {}) is false 481s ok 8 - is_type("string", {}) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("object", {"a" : 1}) is true 481s ok 11 - get_type({"a" : 1}) = object 481s ok 12 - is_type("array", {"a" : 1}) is false 481s ok 13 - is_type("boolean", {"a" : 1}) is false 481s ok 14 - is_type("integer", {"a" : 1}) is false 481s ok 15 - is_type("null", {"a" : 1}) is false 481s ok 16 - is_type("number", {"a" : 1}) is false 481s ok 17 - is_type("string", {"a" : 1}) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 6 - inflated data, type: object 481s # Subtest: inflated data, type: string 481s ok 1 - is_type("string", "") is true 481s ok 2 - get_type("") = string 481s ok 3 - is_type("array", "") is false 481s ok 4 - is_type("boolean", "") is false 481s ok 5 - is_type("integer", "") is false 481s ok 6 - is_type("null", "") is false 481s ok 7 - is_type("number", "") is false 481s ok 8 - is_type("object", "") is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("string", "0") is true 481s ok 11 - get_type("0") = string 481s ok 12 - is_type("array", "0") is false 481s ok 13 - is_type("boolean", "0") is false 481s ok 14 - is_type("integer", "0") is false 481s ok 15 - is_type("null", "0") is false 481s ok 16 - is_type("number", "0") is false 481s ok 17 - is_type("object", "0") is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s ok 19 - is_type("string", "-1") is true 481s ok 20 - get_type("-1") = string 481s ok 21 - is_type("array", "-1") is false 481s ok 22 - is_type("boolean", "-1") is false 481s ok 23 - is_type("integer", "-1") is false 481s ok 24 - is_type("null", "-1") is false 481s ok 25 - is_type("number", "-1") is false 481s ok 26 - is_type("object", "-1") is false 481s ok 27 - data is not tampered with while it is tested (not dualvar) 481s ok 28 - is_type("string", "2") is true 481s ok 29 - get_type("2") = string 481s ok 30 - is_type("array", "2") is false 481s ok 31 - is_type("boolean", "2") is false 481s ok 32 - is_type("integer", "2") is false 481s ok 33 - is_type("null", "2") is false 481s ok 34 - is_type("number", "2") is false 481s ok 35 - is_type("object", "2") is false 481s ok 36 - data is not tampered with while it is tested (not dualvar) 481s ok 37 - is_type("string", "2.0") is true 481s ok 38 - get_type("2.0") = string 481s ok 39 - is_type("array", "2.0") is false 481s ok 40 - is_type("boolean", "2.0") is false 481s ok 41 - is_type("integer", "2.0") is false 481s ok 42 - is_type("null", "2.0") is false 481s ok 43 - is_type("number", "2.0") is false 481s ok 44 - is_type("object", "2.0") is false 481s ok 45 - data is not tampered with while it is tested (not dualvar) 481s ok 46 - is_type("string", "3.1") is true 481s ok 47 - get_type("3.1") = string 481s ok 48 - is_type("array", "3.1") is false 481s ok 49 - is_type("boolean", "3.1") is false 481s ok 50 - is_type("integer", "3.1") is false 481s ok 51 - is_type("null", "3.1") is false 481s ok 52 - is_type("number", "3.1") is false 481s ok 53 - is_type("object", "3.1") is false 481s ok 54 - data is not tampered with while it is tested (not dualvar) 481s ok 55 - is_type("string", "école") is true 481s ok 56 - get_type("école") = string 481s ok 57 - is_type("array", "école") is false 481s ok 58 - is_type("boolean", "école") is false 481s ok 59 - is_type("integer", "école") is false 481s ok 60 - is_type("null", "école") is false 481s ok 61 - is_type("number", "école") is false 481s ok 62 - is_type("object", "école") is false 481s ok 63 - data is not tampered with while it is tested (not dualvar) 481s ok 64 - is_type("string", "ಠ_ಠ") is true 481s ok 65 - get_type("ಠ_ಠ") = string 481s ok 66 - is_type("array", "ಠ_ಠ") is false 481s ok 67 - is_type("boolean", "ಠ_ಠ") is false 481s ok 68 - is_type("integer", "ಠ_ಠ") is false 481s ok 69 - is_type("null", "ಠ_ಠ") is false 481s ok 70 - is_type("number", "ಠ_ಠ") is false 481s ok 71 - is_type("object", "ಠ_ಠ") is false 481s ok 72 - data is not tampered with while it is tested (not dualvar) 481s 1..72 481s ok 7 - inflated data, type: string 481s # Subtest: JSON-encoded data, type: array 481s ok 1 - is_type("array", []) is true 481s ok 2 - get_type([]) = array 481s ok 3 - is_type("boolean", []) is false 481s ok 4 - is_type("integer", []) is false 481s ok 5 - is_type("null", []) is false 481s ok 6 - is_type("number", []) is false 481s ok 7 - is_type("object", []) is false 481s ok 8 - is_type("string", []) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("array", [1]) is true 481s ok 11 - get_type([1]) = array 481s ok 12 - is_type("boolean", [1]) is false 481s ok 13 - is_type("integer", [1]) is false 481s ok 14 - is_type("null", [1]) is false 481s ok 15 - is_type("number", [1]) is false 481s ok 16 - is_type("object", [1]) is false 481s ok 17 - is_type("string", [1]) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 8 - JSON-encoded data, type: array 481s # Subtest: JSON-encoded data, type: boolean 481s ok 1 - is_type("boolean", false) is true 481s ok 2 - get_type(false) = boolean 481s ok 3 - is_type("array", false) is false 481s ok 4 - is_type("integer", false) is false 481s ok 5 - is_type("null", false) is false 481s ok 6 - is_type("number", false) is false 481s ok 7 - is_type("object", false) is false 481s ok 8 - is_type("string", false) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("boolean", true) is true 481s ok 11 - get_type(true) = boolean 481s ok 12 - is_type("array", true) is false 481s ok 13 - is_type("integer", true) is false 481s ok 14 - is_type("null", true) is false 481s ok 15 - is_type("number", true) is false 481s ok 16 - is_type("object", true) is false 481s ok 17 - is_type("string", true) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 9 - JSON-encoded data, type: boolean 481s # Subtest: JSON-encoded data, type: integer 481s ok 1 - is_type("integer", 0) is true 481s ok 2 - is_type("number", 0) is true 481s ok 3 - get_type(0) = integer 481s ok 4 - is_type("array", 0) is false 481s ok 5 - is_type("boolean", 0) is false 481s ok 6 - is_type("null", 0) is false 481s ok 7 - is_type("object", 0) is false 481s ok 8 - is_type("string", 0) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("integer", -1) is true 481s ok 11 - is_type("number", -1) is true 481s ok 12 - get_type(-1) = integer 481s ok 13 - is_type("array", -1) is false 481s ok 14 - is_type("boolean", -1) is false 481s ok 15 - is_type("null", -1) is false 481s ok 16 - is_type("object", -1) is false 481s ok 17 - is_type("string", -1) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s ok 19 - is_type("integer", Math::BigFloat->new('2')) is true 481s ok 20 - is_type("number", Math::BigFloat->new('2')) is true 481s ok 21 - get_type(Math::BigFloat->new('2')) = integer 481s ok 22 - is_type("array", Math::BigFloat->new('2')) is false 481s ok 23 - is_type("boolean", Math::BigFloat->new('2')) is false 481s ok 24 - is_type("null", Math::BigFloat->new('2')) is false 481s ok 25 - is_type("object", Math::BigFloat->new('2')) is false 481s ok 26 - is_type("string", Math::BigFloat->new('2')) is false 481s ok 27 - data is not tampered with while it is tested (not dualvar) 481s ok 28 - is_type("integer", 2147483647) is true 481s ok 29 - is_type("number", 2147483647) is true 481s ok 30 - get_type(2147483647) = integer 481s ok 31 - is_type("array", 2147483647) is false 481s ok 32 - is_type("boolean", 2147483647) is false 481s ok 33 - is_type("null", 2147483647) is false 481s ok 34 - is_type("object", 2147483647) is false 481s ok 35 - is_type("string", 2147483647) is false 481s ok 36 - data is not tampered with while it is tested (not dualvar) 481s ok 37 - is_type("integer", 2147483648) is true 481s ok 38 - is_type("number", 2147483648) is true 481s ok 39 - get_type(2147483648) = integer 481s ok 40 - is_type("array", 2147483648) is false 481s ok 41 - is_type("boolean", 2147483648) is false 481s ok 42 - is_type("null", 2147483648) is false 481s ok 43 - is_type("object", 2147483648) is false 481s ok 44 - is_type("string", 2147483648) is false 481s ok 45 - data is not tampered with while it is tested (not dualvar) 481s ok 46 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 481s ok 47 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 481s ok 48 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 481s ok 49 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 481s ok 50 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 481s ok 51 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 481s ok 52 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 481s ok 53 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 481s ok 54 - data is not tampered with while it is tested (not dualvar) 481s ok 55 - is_type("integer", Math::BigFloat->new('9223372036854780000')) is true 481s ok 56 - is_type("number", Math::BigFloat->new('9223372036854780000')) is true 481s ok 57 - get_type(Math::BigFloat->new('9223372036854780000')) = integer 481s ok 58 - is_type("array", Math::BigFloat->new('9223372036854780000')) is false 481s ok 59 - is_type("boolean", Math::BigFloat->new('9223372036854780000')) is false 481s ok 60 - is_type("null", Math::BigFloat->new('9223372036854780000')) is false 481s ok 61 - is_type("object", Math::BigFloat->new('9223372036854780000')) is false 481s ok 62 - is_type("string", Math::BigFloat->new('9223372036854780000')) is false 481s ok 63 - data is not tampered with while it is tested (not dualvar) 481s ok 64 - is_type("integer", Math::BigFloat->new('18446744073709600000')) is true 481s ok 65 - is_type("number", Math::BigFloat->new('18446744073709600000')) is true 481s ok 66 - get_type(Math::BigFloat->new('18446744073709600000')) = integer 481s ok 67 - is_type("array", Math::BigFloat->new('18446744073709600000')) is false 481s ok 68 - is_type("boolean", Math::BigFloat->new('18446744073709600000')) is false 481s ok 69 - is_type("null", Math::BigFloat->new('18446744073709600000')) is false 481s ok 70 - is_type("object", Math::BigFloat->new('18446744073709600000')) is false 481s ok 71 - is_type("string", Math::BigFloat->new('18446744073709600000')) is false 481s ok 72 - data is not tampered with while it is tested (not dualvar) 481s ok 73 - is_type("integer", Math::BigFloat->new('36893488147419100000')) is true 481s ok 74 - is_type("number", Math::BigFloat->new('36893488147419100000')) is true 481s ok 75 - get_type(Math::BigFloat->new('36893488147419100000')) = integer 481s ok 76 - is_type("array", Math::BigFloat->new('36893488147419100000')) is false 481s ok 77 - is_type("boolean", Math::BigFloat->new('36893488147419100000')) is false 481s ok 78 - is_type("null", Math::BigFloat->new('36893488147419100000')) is false 481s ok 79 - is_type("object", Math::BigFloat->new('36893488147419100000')) is false 481s ok 80 - is_type("string", Math::BigFloat->new('36893488147419100000')) is false 481s ok 81 - data is not tampered with while it is tested (not dualvar) 481s ok 82 - is_type("integer", 1000000000000000) is true 481s ok 83 - is_type("number", 1000000000000000) is true 481s ok 84 - get_type(1000000000000000) = integer 481s ok 85 - is_type("array", 1000000000000000) is false 481s ok 86 - is_type("boolean", 1000000000000000) is false 481s ok 87 - is_type("null", 1000000000000000) is false 481s ok 88 - is_type("object", 1000000000000000) is false 481s ok 89 - is_type("string", 1000000000000000) is false 481s ok 90 - data is not tampered with while it is tested (not dualvar) 481s 1..90 481s ok 10 - JSON-encoded data, type: integer 481s # Subtest: JSON-encoded data, type: null 481s ok 1 - is_type("null", null) is true 481s ok 2 - get_type(null) = null 481s ok 3 - is_type("array", null) is false 481s ok 4 - is_type("boolean", null) is false 481s ok 5 - is_type("integer", null) is false 481s ok 6 - is_type("number", null) is false 481s ok 7 - is_type("object", null) is false 481s ok 8 - is_type("string", null) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s 1..9 481s ok 11 - JSON-encoded data, type: null 481s # Subtest: JSON-encoded data, type: number 481s ok 1 - is_type("number", Math::BigFloat->new('3.1')) is true 481s ok 2 - get_type(Math::BigFloat->new('3.1')) = number 481s ok 3 - is_type("array", Math::BigFloat->new('3.1')) is false 481s ok 4 - is_type("boolean", Math::BigFloat->new('3.1')) is false 481s ok 5 - is_type("integer", Math::BigFloat->new('3.1')) is false 481s ok 6 - is_type("null", Math::BigFloat->new('3.1')) is false 481s ok 7 - is_type("object", Math::BigFloat->new('3.1')) is false 481s ok 8 - is_type("string", Math::BigFloat->new('3.1')) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("number", Math::BigFloat->new('12345678901.2')) is true 481s ok 11 - get_type(Math::BigFloat->new('12345678901.2')) = number 481s ok 12 - is_type("array", Math::BigFloat->new('12345678901.2')) is false 481s ok 13 - is_type("boolean", Math::BigFloat->new('12345678901.2')) is false 481s ok 14 - is_type("integer", Math::BigFloat->new('12345678901.2')) is false 481s ok 15 - is_type("null", Math::BigFloat->new('12345678901.2')) is false 481s ok 16 - is_type("object", Math::BigFloat->new('12345678901.2')) is false 481s ok 17 - is_type("string", Math::BigFloat->new('12345678901.2')) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 12 - JSON-encoded data, type: number 481s # Subtest: JSON-encoded data, type: object 481s ok 1 - is_type("object", {}) is true 481s ok 2 - get_type({}) = object 481s ok 3 - is_type("array", {}) is false 481s ok 4 - is_type("boolean", {}) is false 481s ok 5 - is_type("integer", {}) is false 481s ok 6 - is_type("null", {}) is false 481s ok 7 - is_type("number", {}) is false 481s ok 8 - is_type("string", {}) is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("object", {"a" : 1}) is true 481s ok 11 - get_type({"a" : 1}) = object 481s ok 12 - is_type("array", {"a" : 1}) is false 481s ok 13 - is_type("boolean", {"a" : 1}) is false 481s ok 14 - is_type("integer", {"a" : 1}) is false 481s ok 15 - is_type("null", {"a" : 1}) is false 481s ok 16 - is_type("number", {"a" : 1}) is false 481s ok 17 - is_type("string", {"a" : 1}) is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s 1..18 481s ok 13 - JSON-encoded data, type: object 481s # Subtest: JSON-encoded data, type: string 481s ok 1 - is_type("string", "") is true 481s ok 2 - get_type("") = string 481s ok 3 - is_type("array", "") is false 481s ok 4 - is_type("boolean", "") is false 481s ok 5 - is_type("integer", "") is false 481s ok 6 - is_type("null", "") is false 481s ok 7 - is_type("number", "") is false 481s ok 8 - is_type("object", "") is false 481s ok 9 - data is not tampered with while it is tested (not dualvar) 481s ok 10 - is_type("string", "0") is true 481s ok 11 - get_type("0") = string 481s ok 12 - is_type("array", "0") is false 481s ok 13 - is_type("boolean", "0") is false 481s ok 14 - is_type("integer", "0") is false 481s ok 15 - is_type("null", "0") is false 481s ok 16 - is_type("number", "0") is false 481s ok 17 - is_type("object", "0") is false 481s ok 18 - data is not tampered with while it is tested (not dualvar) 481s ok 19 - is_type("string", "-1") is true 481s ok 20 - get_type("-1") = string 481s ok 21 - is_type("array", "-1") is false 481s ok 22 - is_type("boolean", "-1") is false 481s ok 23 - is_type("integer", "-1") is false 481s ok 24 - is_type("null", "-1") is false 481s ok 25 - is_type("number", "-1") is false 481s ok 26 - is_type("object", "-1") is false 481s ok 27 - data is not tampered with while it is tested (not dualvar) 481s ok 28 - is_type("string", "2.0") is true 481s ok 29 - get_type("2.0") = string 481s ok 30 - is_type("array", "2.0") is false 481s ok 31 - is_type("boolean", "2.0") is false 481s ok 32 - is_type("integer", "2.0") is false 481s ok 33 - is_type("null", "2.0") is false 481s ok 34 - is_type("number", "2.0") is false 481s ok 35 - is_type("object", "2.0") is false 481s ok 36 - data is not tampered with while it is tested (not dualvar) 481s ok 37 - is_type("string", "3.1") is true 481s ok 38 - get_type("3.1") = string 481s ok 39 - is_type("array", "3.1") is false 481s ok 40 - is_type("boolean", "3.1") is false 481s ok 41 - is_type("integer", "3.1") is false 481s ok 42 - is_type("null", "3.1") is false 481s ok 43 - is_type("number", "3.1") is false 481s ok 44 - is_type("object", "3.1") is false 481s ok 45 - data is not tampered with while it is tested (not dualvar) 481s ok 46 - is_type("string", "école") is true 481s ok 47 - get_type("école") = string 481s ok 48 - is_type("array", "école") is false 481s ok 49 - is_type("boolean", "école") is false 481s ok 50 - is_type("integer", "école") is false 481s ok 51 - is_type("null", "école") is false 481s ok 52 - is_type("number", "école") is false 481s ok 53 - is_type("object", "école") is false 481s ok 54 - data is not tampered with while it is tested (not dualvar) 481s ok 55 - is_type("string", "ಠ_ಠ") is true 481s ok 56 - get_type("ಠ_ಠ") = string 481s ok 57 - is_type("array", "ಠ_ಠ") is false 481s ok 58 - is_type("boolean", "ಠ_ಠ") is false 481s ok 59 - is_type("integer", "ಠ_ಠ") is false 481s ok 60 - is_type("null", "ಠ_ಠ") is false 481s ok 61 - is_type("number", "ಠ_ಠ") is false 481s ok 62 - is_type("object", "ಠ_ಠ") is false 481s ok 63 - data is not tampered with while it is tested (not dualvar) 481s 1..63 481s ok 14 - JSON-encoded data, type: string 481s # Subtest: type: integers and numbers 481s ok 1 - is_type('integer', 1) is true 481s ok 2 - is_type('integer', -2.0) is true 481s ok 3 - is_type('integer', 9.22337203685478e+24) is true 481s ok 4 - is_type('integer', 1) is true 481s ok 5 - is_type('integer', -2) is true 481s ok 6 - is_type('integer', Math::BigFloat->new('9223372036854780000000000')) is true 481s ok 7 - get_type(1) is integer 481s ok 8 - get_type(-2.0) is integer 481s ok 9 - get_type(9.22337203685478e+24) is integer 481s ok 10 - get_type(1) is integer 481s ok 11 - get_type(-2) is integer 481s ok 12 - get_type(Math::BigFloat->new('9223372036854780000000000')) is integer 481s ok 13 - is_type('number', 1) is true 481s ok 14 - is_type('number', -2.0) is true 481s ok 15 - is_type('number', 9.22337203685478e+24) is true 481s ok 16 - is_type('number', -2.1) is true 481s ok 17 - is_type('number', 1) is true 481s ok 18 - is_type('number', -2) is true 481s ok 19 - is_type('number', Math::BigFloat->new('9223372036854780000000000')) is true 481s ok 20 - is_type('number', Math::BigFloat->new('-2.1')) is true 481s ok 21 - get_type(-2.1) is number 481s ok 22 - get_type(Math::BigFloat->new('-2.1')) is number 481s ok 23 - is_type('integer', "1") is false 481s ok 24 - is_type('integer', "2.0") is false 481s ok 25 - is_type('integer', 3.1) is false 481s ok 26 - is_type('integer', "4.2") is false 481s ok 27 - is_type('integer', "1") is false 481s ok 28 - is_type('integer', "2.0") is false 481s ok 29 - is_type('integer', Math::BigFloat->new('3.1')) is false 481s ok 30 - is_type('integer', "4.2") is false 481s ok 31 - get_type("1") is not integer 481s ok 32 - get_type("2.0") is not integer 481s ok 33 - get_type(3.1) is not integer 481s ok 34 - get_type("4.2") is not integer 481s ok 35 - get_type("1") is not integer 481s ok 36 - get_type("2.0") is not integer 481s ok 37 - get_type(Math::BigFloat->new('3.1')) is not integer 481s ok 38 - get_type("4.2") is not integer 481s 1..38 481s ok 15 - type: integers and numbers 481s # Subtest: type: integers and numbers in draft4 481s ok 1 - is_type('integer', 1, { legacy_ints => 1 }) is true 481s ok 2 - is_type('integer', 1, { legacy_ints => 1 }) is true 481s ok 3 - get_type(1, { legacy_ints => 1 }) is integer 481s ok 4 - get_type(1, { legacy_ints => 1 }) is integer 481s ok 5 - is_type('number', 1, { legacy_ints => 1 }) is true 481s ok 6 - is_type('number', 2.0, { legacy_ints => 1 }) is true 481s ok 7 - is_type('number', -2.1, { legacy_ints => 1 }) is true 481s ok 8 - is_type('number', 1, { legacy_ints => 1 }) is true 481s ok 9 - is_type('number', Math::BigFloat->new('2'), { legacy_ints => 1 }) is true 481s ok 10 - is_type('number', Math::BigFloat->new('-2.1'), { legacy_ints => 1 }) is true 481s ok 11 - is_type('number', Math::BigInt->new('9223372036854775800000008'), { legacy_ints => 1 }) is true 481s ok 12 - get_type(2.0, { legacy_ints => 1 }) is number 481s ok 13 - get_type(-2.1, { legacy_ints => 1 }) is number 481s ok 14 - get_type(Math::BigFloat->new('2'), { legacy_ints => 1 }) is number 481s ok 15 - get_type(Math::BigFloat->new('-2.1'), { legacy_ints => 1 }) is number 481s ok 16 - get_type(Math::BigInt->new('9223372036854775800000008'), { legacy_ints => 1 }) is number 481s ok 17 - is_type('integer', "1", { legacy_ints => 1 }) is false 481s ok 18 - is_type('integer', "2.0", { legacy_ints => 1 }) is false 481s ok 19 - is_type('integer', 3.1, { legacy_ints => 1 }) is false 481s ok 20 - is_type('integer', "4.2", { legacy_ints => 1 }) is false 481s ok 21 - is_type('integer', "1", { legacy_ints => 1 }) is false 481s ok 22 - is_type('integer', "2.0", { legacy_ints => 1 }) is false 481s ok 23 - is_type('integer', Math::BigFloat->new('3.1'), { legacy_ints => 1 }) is false 481s ok 24 - is_type('integer', "4.2", { legacy_ints => 1 }) is false 481s ok 25 - get_type("1", { legacy_ints => 1 }) is not integer 481s ok 26 - get_type("2.0", { legacy_ints => 1 }) is not integer 481s ok 27 - get_type(3.1, { legacy_ints => 1 }) is not integer 481s ok 28 - get_type("4.2", { legacy_ints => 1 }) is not integer 481s ok 29 - get_type("1", { legacy_ints => 1 }) is not integer 481s ok 30 - get_type("2.0", { legacy_ints => 1 }) is not integer 481s ok 31 - get_type(Math::BigFloat->new('3.1'), { legacy_ints => 1 }) is not integer 481s ok 32 - get_type("4.2", { legacy_ints => 1 }) is not integer 481s 1..32 481s ok 16 - type: integers and numbers in draft4 481s ok 17 - non-existent type does not result in exception 481s # Subtest: ambiguous types 481s ok 1 - dualvars are ambiguous 481s ok 2 # skip on perls >= 5.35.9, reading the string form of an integer value no longer sets the flag SVf_POK 481s 1..2 481s ok 18 - ambiguous types 481s # Subtest: is_type and get_type for references 481s ok 1 - reference to SCALAR type is reported without exception 481s ok 2 - value is a reference to SCALAR 481s ok 3 - value is not a null 481s ok 4 - value is not a object 481s ok 5 - value is not a array 481s ok 6 - value is not a boolean 481s ok 7 - value is not a string 481s ok 8 - value is not a number 481s ok 9 - value is not a integer 481s ok 10 - reference to REF type is reported without exception 481s ok 11 - value is a reference to REF 481s ok 12 - value is not a null 481s ok 13 - value is not a object 481s ok 14 - value is not a array 481s ok 15 - value is not a boolean 481s ok 16 - value is not a string 481s ok 17 - value is not a number 481s ok 18 - value is not a integer 481s ok 19 - reference to CODE type is reported without exception 481s ok 20 - value is a reference to CODE 481s ok 21 - value is not a null 481s ok 22 - value is not a object 481s ok 23 - value is not a array 481s ok 24 - value is not a boolean 481s ok 25 - value is not a string 481s ok 26 - value is not a number 481s ok 27 - value is not a integer 481s ok 28 - reference to GLOB type is reported without exception 481s ok 29 - value is a reference to GLOB 481s ok 30 - value is not a null 481s ok 31 - value is not a object 481s ok 32 - value is not a array 481s ok 33 - value is not a boolean 481s ok 34 - value is not a string 481s ok 35 - value is not a number 481s ok 36 - value is not a integer 481s ok 37 - reference to LVALUE type is reported without exception 481s ok 38 - value is a reference to LVALUE 481s ok 39 - value is not a null 481s ok 40 - value is not a object 481s ok 41 - value is not a array 481s ok 42 - value is not a boolean 481s ok 43 - value is not a string 481s ok 44 - value is not a number 481s ok 45 - value is not a integer 481s ok 46 - reference to VSTRING type is reported without exception 481s ok 47 - value is a reference to VSTRING 481s ok 48 - value is not a null 481s ok 49 - value is not a object 481s ok 50 - value is not a array 481s ok 51 - value is not a boolean 481s ok 52 - value is not a string 481s ok 53 - value is not a number 481s ok 54 - value is not a integer 481s ok 55 - Regexp type is reported without exception 481s ok 56 - value is a Regexp 481s ok 57 - value is not a null 481s ok 58 - value is not a object 481s ok 59 - value is not a array 481s ok 60 - value is not a boolean 481s ok 61 - value is not a string 481s ok 62 - value is not a number 481s ok 63 - value is not a integer 481s ok 64 - IO::File type is reported without exception 481s ok 65 - value is a IO::File 481s ok 66 - value is not a null 481s ok 67 - value is not a object 481s ok 68 - value is not a array 481s ok 69 - value is not a boolean 481s ok 70 - value is not a string 481s ok 71 - value is not a number 481s ok 72 - value is not a integer 481s ok 73 - Foo type is reported without exception 481s ok 74 - value is a Foo 481s ok 75 - value is not a null 481s ok 76 - value is not a object 481s ok 77 - value is not a array 481s ok 78 - value is not a boolean 481s ok 79 - value is not a string 481s ok 80 - value is not a number 481s ok 81 - value is not a integer 481s 1..81 481s ok 19 - is_type and get_type for references 481s 1..19 481s ok 482s t/unsupported-keywords.t ................ 482s # 482s # draft7 482s ok 1 - schema with "id" still validates in draft7 482s ok 2 - warned for "id" in draft7 482s ok 3 - schema with "definitions" validates in draft7 482s ok 4 - did not warn for "definitions" in draft7 482s ok 5 - schema with "dependencies" validates in draft7 482s ok 6 - did not warn for "dependencies" in draft7 482s # 482s # draft2019-09 482s ok 7 - schema with "id" still validates in draft2019-09 482s ok 8 - warned for "id" in draft2019-09 482s ok 9 - schema with "definitions" still validates in draft2019-09 482s ok 10 - warned for "definitions" in draft2019-09 482s ok 11 - schema with "dependencies" still validates in draft2019-09 482s ok 12 - warned for "dependencies" in draft2019-09 482s 1..12 482s ok 482s t/validate-schema.t ..................... 482s ok 1 - validate_schema on simple schema with no $schema keyword 482s ok 2 - validate_schema on schema with metaschema $schema keyword 482s ok 3 - validate_schema with custom metaschema 482s 1..3 482s ok 483s t/vocabularies.t ........................ 483s # Subtest: valid keywords 483s ok 1 - draft4, Applicator: calculated keyword list matches hardcoded table 483s ok 2 - draft4, Core: calculated keyword list matches hardcoded table 483s ok 3 - draft4, FormatAnnotation: calculated keyword list matches hardcoded table 483s ok 4 - draft4, MetaData: calculated keyword list matches hardcoded table 483s ok 5 - draft4, Validation: calculated keyword list matches hardcoded table 483s ok 6 - draft6, Applicator: calculated keyword list matches hardcoded table 483s ok 7 - draft6, Core: calculated keyword list matches hardcoded table 483s ok 8 - draft6, FormatAnnotation: calculated keyword list matches hardcoded table 483s ok 9 - draft6, MetaData: calculated keyword list matches hardcoded table 483s ok 10 - draft6, Validation: calculated keyword list matches hardcoded table 483s ok 11 - draft7, Applicator: calculated keyword list matches hardcoded table 483s ok 12 - draft7, Content: calculated keyword list matches hardcoded table 483s ok 13 - draft7, Core: calculated keyword list matches hardcoded table 483s ok 14 - draft7, FormatAnnotation: calculated keyword list matches hardcoded table 483s ok 15 - draft7, MetaData: calculated keyword list matches hardcoded table 483s ok 16 - draft7, Validation: calculated keyword list matches hardcoded table 483s ok 17 - draft2019-09, Applicator: calculated keyword list matches hardcoded table 483s ok 18 - draft2019-09, Content: calculated keyword list matches hardcoded table 483s ok 19 - draft2019-09, Core: calculated keyword list matches hardcoded table 483s ok 20 - draft2019-09, FormatAnnotation: calculated keyword list matches hardcoded table 483s ok 21 - draft2019-09, MetaData: calculated keyword list matches hardcoded table 483s ok 22 - draft2019-09, Validation: calculated keyword list matches hardcoded table 483s ok 23 - draft2020-12, Applicator: calculated keyword list matches hardcoded table 483s ok 24 - draft2020-12, Content: calculated keyword list matches hardcoded table 483s ok 25 - draft2020-12, Core: calculated keyword list matches hardcoded table 483s ok 26 - draft2020-12, FormatAnnotation: calculated keyword list matches hardcoded table 483s ok 27 - draft2020-12, MetaData: calculated keyword list matches hardcoded table 483s ok 28 - draft2020-12, Unevaluated: calculated keyword list matches hardcoded table 483s ok 29 - draft2020-12, Validation: calculated keyword list matches hardcoded table 483s 1..29 483s ok 1 - valid keywords 483s 1..1 483s ok 485s t/zzz-acceptance-draft2019-09-format.t .. 485s # AUTHOR_TESTING: 485s # AUTOMATED_TESTING: 1 485s # EXTENDED_TESTING: 485s # NO_TODO: 485s # TEST_DIR: 485s # NO_SHORT_CIRCUIT: 485s # 485s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09/optional/format against draft2019-09... 485s # 485s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date-time", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s # 485s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 32 - date.json: "validation of date strings" - "a valid date string" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 64 - date.json: "validation of date strings" - "invalid month" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid date", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s # 485s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 485s # result: { 485s # "valid": true 485s # } 485s # short-circuited result: { 485s # "valid": true 485s # } 485s ok 1 - test passes: data is valid: true 485s 1..1 485s } 485s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid duration", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid duration", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s ok 1 - test passes: data is valid: false 485s 1..1 485s } 485s ok 81 - duration.json: "validation of duration strings" - "no elements present" { 485s # result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid duration", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 485s # } 485s # ], 485s # "valid": false 485s # } 485s # short-circuited result: { 485s # "errors": [ 485s # { 485s # "error": "not a valid duration", 485s # "instanceLocation": "", 485s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 82 - duration.json: "validation of duration strings" - "no time elements present" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 83 - duration.json: "validation of duration strings" - "no date or time elements present" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 84 - duration.json: "validation of duration strings" - "elements out of order" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 85 - duration.json: "validation of duration strings" - "missing time separator" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 86 - duration.json: "validation of duration strings" - "time element in the date position" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 87 - duration.json: "validation of duration strings" - "four years duration" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 88 - duration.json: "validation of duration strings" - "zero time, in seconds" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 89 - duration.json: "validation of duration strings" - "zero time, in days" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 90 - duration.json: "validation of duration strings" - "one month duration" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 91 - duration.json: "validation of duration strings" - "one minute duration" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 92 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 94 - duration.json: "validation of duration strings" - "two weeks" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 95 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 96 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 97 - duration.json: "validation of duration strings" - "element without unit" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid duration", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 98 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 104 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 105 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 106 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 107 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 108 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 109 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 110 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 111 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 112 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 113 - hostname.json: "validation of host names" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 114 - hostname.json: "validation of host names" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 115 - hostname.json: "validation of host names" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 116 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 117 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 118 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 119 - hostname.json: "validation of host names" - "a valid host name" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 120 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 121 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 122 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 123 - hostname.json: "validation of host names" - "a host name with a component too long" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 124 - hostname.json: "validation of host names" - "starts with hyphen" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 125 - hostname.json: "validation of host names" - "ends with hyphen" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 126 - hostname.json: "validation of host names" - "starts with underscore" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 127 - hostname.json: "validation of host names" - "ends with underscore" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 128 - hostname.json: "validation of host names" - "contains underscore" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 129 - hostname.json: "validation of host names" - "maximum label length" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 130 - hostname.json: "validation of host names" - "exceeds maximum label length" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 131 - hostname.json: "validation of host names" - "single label" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"hostname\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 132 - hostname.json: "validation of host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"host-name\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 133 - hostname.json: "validation of host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"h0stn4me\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 134 - hostname.json: "validation of host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"1host\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 135 - hostname.json: "validation of host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"hostnam3\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s # 486s ok 136 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 137 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 138 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 139 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 140 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 141 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 142 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-email", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 146 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 147 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 148 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 149 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 150 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 151 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 152 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 153 - 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" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 154 - 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" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"실〮례.테스트\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s ok 155 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 156 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 157 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"xn--ihqwcrb4cv8a8dqg056pqjye\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 158 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 159 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 160 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 161 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 162 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 163 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 164 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 165 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 166 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"ßς་〇\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 167 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"Û½Û¾\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 168 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 169 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 170 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 171 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 172 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 173 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 174 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"l·l\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 177 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"α͵β\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 178 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 179 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 180 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"א׳ב\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 181 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"א״ב\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 184 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 185 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 186 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"・ぁ\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 187 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"・ァ\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 188 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"・丈\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 190 - 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" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"ب٠ب\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 191 - 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" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"Û°0\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 192 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 193 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false # 486s 1..1 486s } 486s ok 194 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"क्‍ष\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 195 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"क्‌ष\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 196 - 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" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"بي‌بي\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 197 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"hostname\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 198 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"host-name\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 199 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"h0stn4me\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 200 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"1host\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s ok 201 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected true; got false 486s # data: "\"hostnam3\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"idn-hostname\"}" 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid idn-hostname", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s 1..1 486s } 486s # 486s ok 202 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 203 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 204 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 205 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 206 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 207 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 208 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 209 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 210 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 211 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 212 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 213 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 214 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 215 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 216 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 217 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv4", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 218 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 219 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 220 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 221 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 222 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 223 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 224 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 225 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 226 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 227 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 228 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 229 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 230 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 231 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 232 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 233 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 234 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 235 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 236 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 237 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 238 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 239 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 240 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 241 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 242 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 243 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 244 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 245 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 246 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 247 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 248 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 249 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 250 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 251 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 252 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 253 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 254 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 255 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 256 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 257 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid ipv6", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 258 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 259 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 260 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 261 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 262 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 263 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 264 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 265 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 266 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 267 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"\\\\\\\\WINDOWS\\\\filëßåré\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"iri-reference\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s ok 268 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 269 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 270 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"#ƒräg\\\\mênt\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"iri-reference\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s # 486s ok 271 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 272 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 273 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 274 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 275 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 276 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 277 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 278 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 279 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 280 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 281 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 282 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"http://2001:0db8:85a3:0000:0000:8a2e:0370:7334\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"iri\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s ok 283 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 284 - iri.json: "validation of IRIs" - "an invalid IRI" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 285 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid iri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 324 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 325 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 326 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 327 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 328 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 329 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 330 - regex.json: "validation of regular expressions" - "a valid regular expression" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 331 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid regex", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid regex", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 332 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 333 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 334 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 335 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 336 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 337 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 338 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 339 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 340 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 341 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 342 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 343 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid relative-json-pointer", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s # 486s ok 350 - time.json: "validation of time strings" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 351 - time.json: "validation of time strings" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 352 - time.json: "validation of time strings" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 353 - time.json: "validation of time strings" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 354 - time.json: "validation of time strings" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 355 - time.json: "validation of time strings" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 356 - time.json: "validation of time strings" - "a valid time string" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 357 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 358 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 359 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 360 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 361 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 362 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 363 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 364 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 365 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 366 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 367 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 368 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 369 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 370 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 371 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 372 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 373 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 374 - time.json: "validation of time strings" - "a valid time string with second fraction" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 375 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 376 - time.json: "validation of time strings" - "a valid time string with plus offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 377 - time.json: "validation of time strings" - "a valid time string with minus offset" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 378 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 379 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 380 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 381 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 382 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 383 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 384 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 385 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 386 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 387 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 388 - time.json: "validation of time strings" - "an invalid offset indicator" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 389 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 390 - time.json: "validation of time strings" - "no time offset" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 391 - time.json: "validation of time strings" - "no time offset with second fraction" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 392 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 393 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 394 - time.json: "validation of time strings" - "contains letters" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid time", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 395 - unknown.json: "unknown format" - "unknown formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 396 - unknown.json: "unknown format" - "unknown formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 397 - unknown.json: "unknown format" - "unknown formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 398 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 399 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 400 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 401 - unknown.json: "unknown format" - "unknown formats ignore strings" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s # 486s ok 402 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 403 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 404 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 405 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 406 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 407 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 408 - uri-reference.json: "validation of URI References" - "a valid URI" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 409 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 410 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 411 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri-reference", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri-reference", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 412 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 413 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 414 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri-reference", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri-reference", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s # 486s ok 415 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 416 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 417 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 418 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 419 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 420 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 421 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 422 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"http://example.com/dictionary/{term:1}/{term\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"uri-template\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s ok 423 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s ok 424 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true # 486s 1..1 486s } 486s # 486s ok 425 - uri.json: "validation of URIs" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 426 - uri.json: "validation of URIs" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 427 - uri.json: "validation of URIs" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 428 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 429 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 430 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 431 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 432 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 433 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 434 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 435 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 436 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 437 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 438 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 439 - uri.json: "validation of URIs" - "a valid URL " { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 440 - uri.json: "validation of URIs" - "a valid mailto URI" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 441 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 442 - uri.json: "validation of URIs" - "a valid tel URI" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 443 - uri.json: "validation of URIs" - "a valid URN" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 444 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 445 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 446 - uri.json: "validation of URIs" - "an invalid URI" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 447 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 448 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 449 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uri", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 450 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s not ok 1 - evaluation result is incorrect # 486s # Failed test (with amnesty) 'evaluation result is incorrect' 486s # at t/zzz-acceptance-draft2019-09-format.t line 68. 486s # expected false; got true 486s # data: "\"bar,baz:foo\"" 486s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"format\":\"uri\"}" 486s # result: { 486s # "valid": true 486s # } 486s 1..1 486s } 486s # 486s ok 451 - uuid.json: "uuid format" - "all string formats ignore integers" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 452 - uuid.json: "uuid format" - "all string formats ignore floats" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 453 - uuid.json: "uuid format" - "all string formats ignore objects" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 454 - uuid.json: "uuid format" - "all string formats ignore arrays" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 455 - uuid.json: "uuid format" - "all string formats ignore booleans" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 456 - uuid.json: "uuid format" - "all string formats ignore nulls" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 457 - uuid.json: "uuid format" - "all upper-case" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 458 - uuid.json: "uuid format" - "all lower-case" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 459 - uuid.json: "uuid format" - "mixed case" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 460 - uuid.json: "uuid format" - "all zeroes is valid" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 461 - uuid.json: "uuid format" - "wrong length" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 462 - uuid.json: "uuid format" - "missing section" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 463 - uuid.json: "uuid format" - "bad characters (not hex)" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 464 - uuid.json: "uuid format" - "no dashes" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 465 - uuid.json: "uuid format" - "too few dashes" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 466 - uuid.json: "uuid format" - "too many dashes" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 467 - uuid.json: "uuid format" - "dashes in the wrong spot" { 486s # result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s # short-circuited result: { 486s # "errors": [ 486s # { 486s # "error": "not a valid uuid", 486s # "instanceLocation": "", 486s # "keywordLocation": "/format" 486s # } 486s # ], 486s # "valid": false 486s # } 486s ok 1 - test passes: data is valid: false 486s 1..1 486s } 486s ok 468 - uuid.json: "uuid format" - "valid version 4" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 469 - uuid.json: "uuid format" - "valid version 5" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 470 - uuid.json: "uuid format" - "hypothetical version 6" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s ok 471 - uuid.json: "uuid format" - "hypothetical version 15" { 486s # result: { 486s # "valid": true 486s # } 486s # short-circuited result: { 486s # "valid": true 486s # } 486s ok 1 - test passes: data is valid: true 486s 1..1 486s } 486s # 486s # 486s # generated with: Test::JSON::Schema::Acceptance 1.026 486s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 486s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 486s # specification version: draft2019-09 486s # using custom test directory: /optional/format 486s # optional tests included: yes 486s # 486s # filename pass todo-fail fail 486s # --------------------------------------------------------------- 486s # date-time.json 25 0 0 486s # date.json 47 0 0 486s # duration.json 25 0 0 486s # email.json 15 0 0 486s # hostname.json 18 5 0 486s # idn-email.json 10 0 0 486s # idn-hostname.json 35 21 0 486s # ipv4.json 16 0 0 486s # ipv6.json 40 0 0 486s # iri-reference.json 11 2 0 486s # iri.json 14 1 0 486s # json-pointer.json 38 0 0 486s # regex.json 8 0 0 486s # relative-json-pointer.json 18 0 0 486s # time.json 45 0 0 486s # unknown.json 7 0 0 486s # uri-reference.json 13 0 0 486s # uri-template.json 9 1 0 486s # uri.json 25 1 0 486s # uuid.json 21 0 0 486s # --------------------------------------------------------------- 486s # TOTAL 440 31 0 486s # 486s # Congratulations, all non-optional tests are passing! 486s # 486s ok 472 - no leaks in the main evaluator object 486s ok 473 - no leaks in the short-circuiting evaluator object 486s 1..473 486s ok 496s t/zzz-acceptance-draft2019-09.t ......... 496s # AUTHOR_TESTING: 496s # AUTOMATED_TESTING: 1 496s # EXTENDED_TESTING: 496s # NO_TODO: 496s # TEST_DIR: 496s # NO_SHORT_CIRCUIT: 496s # 496s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 496s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2019-09 against draft2019-09... 496s # 496s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/type" 496s # }, 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/élmény", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/élmény", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 37 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 38 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/pear", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/pear", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 39 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 40 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 41 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 42 - allOf.json: "allOf" - "allOf" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 43 - allOf.json: "allOf" - "mismatch second" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 44 - allOf.json: "allOf" - "mismatch first" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/required" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/required" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 45 - allOf.json: "allOf" - "wrong type" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/properties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/properties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 46 - allOf.json: "allOf with base schema" - "valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 47 - allOf.json: "allOf with base schema" - "mismatch base schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 48 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 49 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: baz", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/required" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: baz", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/required" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 50 - allOf.json: "allOf with base schema" - "mismatch both" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "object is missing property: baz", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/required" 496s # }, 496s # { 496s # "error": "subschemas 0, 1 are not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/required" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 51 - allOf.json: "allOf simple types" - "valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 52 - allOf.json: "allOf simple types" - "mismatch one" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 30", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/maximum" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 30", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/maximum" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 53 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 54 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 55 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1" 496s # }, 496s # { 496s # "error": "subschemas 0, 1 are not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 56 - allOf.json: "allOf with one empty schema" - "any data is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 57 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 58 - allOf.json: "allOf with the first empty schema" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 59 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/type" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/type" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 60 - allOf.json: "allOf with the last empty schema" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 61 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 62 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 63 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/allOf/0/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/allOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/allOf/0/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/allOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 67 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 68 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 69 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 70 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/multipleOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 71 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 72 - anchor.json: "Location-independent identifier" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 73 - anchor.json: "Location-independent identifier" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 74 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 75 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/bar#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 76 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 77 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested.json#/$defs/B/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 78 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 79 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/child1#/allOf/1/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 80 - anyOf.json: "anyOf" - "first anyOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 81 - anyOf.json: "anyOf" - "second anyOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 82 - anyOf.json: "anyOf" - "both anyOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 83 - anyOf.json: "anyOf" - "neither anyOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "error": "value is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/minimum" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "error": "value is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/minimum" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 84 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 85 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 86 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/maxLength" 496s # }, 496s # { 496s # "error": "length is less than 4", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/minLength" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/maxLength" 496s # }, 496s # { 496s # "error": "length is less than 4", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/minLength" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 87 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 88 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 89 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 90 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 91 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 92 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 93 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/anyOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/properties" 496s # }, 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/properties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/anyOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/properties" 496s # }, 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/properties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 94 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 95 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 96 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 97 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/anyOf/0/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/anyOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/anyOf/0/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/anyOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 98 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 99 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 100 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 101 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 102 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 103 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 104 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 105 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 106 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 107 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 108 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 109 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 110 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 111 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 112 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 113 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 114 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 115 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 116 - const.json: "const validation" - "same value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 117 - const.json: "const validation" - "another value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 118 - const.json: "const validation" - "another type is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 119 - const.json: "const with object" - "same object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 120 - const.json: "const with object" - "same object with different property order is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 121 - const.json: "const with object" - "another object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 122 - const.json: "const with object" - "another type is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 123 - const.json: "const with array" - "same array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 124 - const.json: "const with array" - "another array item is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs object)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs object)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 125 - const.json: "const with array" - "array with additional items is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 126 - const.json: "const with null" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 127 - const.json: "const with null" - "not null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 128 - const.json: "const with false does not match 0" - "false is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 129 - const.json: "const with false does not match 0" - "integer zero is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 130 - const.json: "const with false does not match 0" - "float zero is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 131 - const.json: "const with true does not match 1" - "true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 132 - const.json: "const with true does not match 1" - "integer one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 133 - const.json: "const with true does not match 1" - "float one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 134 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 135 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 136 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 137 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 138 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 139 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 140 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 141 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 142 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 143 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 144 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 145 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 146 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 147 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 148 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 149 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 150 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 151 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 152 - const.json: "const with 1 does not match true" - "true is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 153 - const.json: "const with 1 does not match true" - "integer one is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 154 - const.json: "const with 1 does not match true" - "float one is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 155 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 156 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 157 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 158 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 159 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 160 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 161 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 162 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 163 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 164 - const.json: "nul characters in strings" - "match string with nul" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 165 - const.json: "nul characters in strings" - "do not match string lacking nul" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/const" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 166 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 167 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 168 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 169 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "value is less than 5", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 170 - contains.json: "contains keyword validation" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 171 - contains.json: "contains keyword validation" - "not array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 172 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 173 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 174 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 175 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 176 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 177 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 178 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 179 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 180 - contains.json: "items + contains" - "matches items, does not match contains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 181 - contains.json: "items + contains" - "does not match items, matches contains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 182 - contains.json: "items + contains" - "matches both items and contains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 183 - contains.json: "items + contains" - "matches neither items nor contains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "value is not a multiple of 3", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/contains/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 184 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 185 - contains.json: "contains with false if subschema" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 186 - contains.json: "contains with null instance elements" - "allows null items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 187 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 188 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 189 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 190 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 191 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 192 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 193 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 194 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 195 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 196 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 197 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 198 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 199 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 200 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 201 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 202 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 203 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 204 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 205 - default.json: "invalid type for default" - "valid when property is specified" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 206 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 207 - default.json: "invalid string value for default" - "valid when property is specified" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 208 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s 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)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s 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)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 3", 496s # "instanceLocation": "/alpha", 496s # "keywordLocation": "/properties/alpha/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 3", 496s # "instanceLocation": "/alpha", 496s # "keywordLocation": "/properties/alpha/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s 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" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 212 - defs.json: "validate definition against metaschema" - "valid definition schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 213 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 496s # "error": "got integer, not array", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/$defs/foo", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "/$defs/foo", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/$defs", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/simpleTypes/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf/1/type", 496s # "error": "got integer, not array", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties/type/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/$defs/foo/type", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties/type/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/$defs/foo", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf/2/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "/$defs/foo", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$recursiveRef/allOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties/$defs/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/$defs", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/core#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 214 - dependentRequired.json: "single dependency" - "neither" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 215 - dependentRequired.json: "single dependency" - "nondependant" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 216 - dependentRequired.json: "single dependency" - "with dependency" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 217 - dependentRequired.json: "single dependency" - "missing dependency" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 218 - dependentRequired.json: "single dependency" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 219 - dependentRequired.json: "single dependency" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 220 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 221 - dependentRequired.json: "empty dependents" - "empty object" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 222 - dependentRequired.json: "empty dependents" - "object with one property" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 223 - dependentRequired.json: "empty dependents" - "non-object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 224 - dependentRequired.json: "multiple dependents required" - "neither" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 225 - dependentRequired.json: "multiple dependents required" - "nondependants" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 226 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 227 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 228 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 229 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: foo, bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: foo, bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/quux" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 230 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 231 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 232 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\rbar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/foo\nbar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\rbar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/foo\nbar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 233 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo'bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/foo\"bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo'bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired/foo\"bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentRequired" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 234 - dependentSchemas.json: "single dependency" - "valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 235 - dependentSchemas.json: "single dependency" - "no dependency" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 236 - dependentSchemas.json: "single dependency" - "wrong type" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 237 - dependentSchemas.json: "single dependency" - "wrong type other" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 238 - dependentSchemas.json: "single dependency" - "wrong type both" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 496s # }, 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar/properties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 239 - dependentSchemas.json: "single dependency" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 240 - dependentSchemas.json: "single dependency" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 241 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 242 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 243 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 244 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/bar" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 245 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 246 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 247 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\"bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo'bar/required" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\"bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo'bar/required" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 248 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 4 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 4 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 249 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\"bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo'bar/required" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo\"bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo'bar/required" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 250 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 251 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 252 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 496s # }, 496s # { 496s # "error": "not all dependencies are satisfied", 496s # "instanceLocation": "", 496s # "keywordLocation": "/dependentSchemas" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 253 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 254 - enum.json: "simple enum validation" - "one of the enum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 255 - enum.json: "simple enum validation" - "something else is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 256 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 257 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 258 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 496s # result: { 496s # "errors": [ 496s # { 496s # "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)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "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)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 259 - enum.json: "heterogeneous enum validation" - "valid object matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 260 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 261 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 262 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 263 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 264 - enum.json: "enums in properties" - "both properties are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 265 - enum.json: "enums in properties" - "wrong foo value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/enum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/enum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 266 - enum.json: "enums in properties" - "wrong bar value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/enum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/enum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 267 - enum.json: "enums in properties" - "missing optional property is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 268 - enum.json: "enums in properties" - "missing required property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 269 - enum.json: "enums in properties" - "missing all properties is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 270 - enum.json: "enum with escaped characters" - "member 1 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 271 - enum.json: "enum with escaped characters" - "member 2 is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 272 - enum.json: "enum with escaped characters" - "another string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 273 - enum.json: "enum with false does not match 0" - "false is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 274 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 275 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 276 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 277 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 278 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 279 - enum.json: "enum with true does not match 1" - "true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 280 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 281 - enum.json: "enum with true does not match 1" - "float one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 282 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 283 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 284 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 285 - enum.json: "enum with 0 does not match false" - "false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 286 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 287 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 288 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 289 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 290 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 291 - enum.json: "enum with 1 does not match true" - "true is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 292 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 293 - enum.json: "enum with 1 does not match true" - "float one is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 294 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 295 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 296 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 297 - enum.json: "nul characters in strings" - "match string with nul" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 298 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 299 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 300 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 301 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 302 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 303 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 304 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 305 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 306 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 307 - format.json: "email format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 308 - format.json: "email format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 309 - format.json: "email format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 310 - format.json: "email format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 311 - format.json: "email format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 312 - format.json: "email format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 313 - format.json: "idn-email format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 314 - format.json: "idn-email format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 315 - format.json: "idn-email format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 316 - format.json: "idn-email format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 317 - format.json: "idn-email format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 318 - format.json: "idn-email format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 319 - format.json: "regex format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 320 - format.json: "regex format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 321 - format.json: "regex format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 322 - format.json: "regex format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 323 - format.json: "regex format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 324 - format.json: "regex format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 325 - format.json: "ipv4 format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 326 - format.json: "ipv4 format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 327 - format.json: "ipv4 format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 328 - format.json: "ipv4 format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 329 - format.json: "ipv4 format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 330 - format.json: "ipv4 format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 331 - format.json: "ipv6 format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 332 - format.json: "ipv6 format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 333 - format.json: "ipv6 format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 334 - format.json: "ipv6 format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 335 - format.json: "ipv6 format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 336 - format.json: "ipv6 format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 337 - format.json: "idn-hostname format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 338 - format.json: "idn-hostname format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 339 - format.json: "idn-hostname format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 340 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 341 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 342 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 343 - format.json: "hostname format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 344 - format.json: "hostname format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 345 - format.json: "hostname format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 346 - format.json: "hostname format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 347 - format.json: "hostname format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 348 - format.json: "hostname format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 349 - format.json: "date format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 350 - format.json: "date format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 351 - format.json: "date format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 352 - format.json: "date format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 353 - format.json: "date format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 354 - format.json: "date format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 355 - format.json: "date-time format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 356 - format.json: "date-time format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 357 - format.json: "date-time format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 358 - format.json: "date-time format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 359 - format.json: "date-time format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 360 - format.json: "date-time format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 361 - format.json: "time format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 362 - format.json: "time format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 363 - format.json: "time format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 364 - format.json: "time format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 365 - format.json: "time format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 366 - format.json: "time format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 367 - format.json: "json-pointer format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 368 - format.json: "json-pointer format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 369 - format.json: "json-pointer format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 370 - format.json: "json-pointer format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 371 - format.json: "json-pointer format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 372 - format.json: "json-pointer format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 373 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 374 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 375 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 376 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 377 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 378 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 379 - format.json: "iri format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 380 - format.json: "iri format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 381 - format.json: "iri format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 382 - format.json: "iri format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 383 - format.json: "iri format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 384 - format.json: "iri format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 385 - format.json: "iri-reference format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 386 - format.json: "iri-reference format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 387 - format.json: "iri-reference format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 388 - format.json: "iri-reference format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 389 - format.json: "iri-reference format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 390 - format.json: "iri-reference format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 391 - format.json: "uri format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 392 - format.json: "uri format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 393 - format.json: "uri format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 394 - format.json: "uri format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 395 - format.json: "uri format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 396 - format.json: "uri format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 397 - format.json: "uri-reference format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 398 - format.json: "uri-reference format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 399 - format.json: "uri-reference format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 400 - format.json: "uri-reference format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 401 - format.json: "uri-reference format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 402 - format.json: "uri-reference format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 403 - format.json: "uri-template format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 404 - format.json: "uri-template format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 405 - format.json: "uri-template format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 406 - format.json: "uri-template format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 407 - format.json: "uri-template format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 408 - format.json: "uri-template format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 409 - format.json: "uuid format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 410 - format.json: "uuid format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 411 - format.json: "uuid format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 412 - format.json: "uuid format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 413 - format.json: "uuid format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 414 - format.json: "uuid format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 415 - format.json: "duration format" - "all string formats ignore integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 416 - format.json: "duration format" - "all string formats ignore floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 417 - format.json: "duration format" - "all string formats ignore objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 418 - format.json: "duration format" - "all string formats ignore arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 419 - format.json: "duration format" - "all string formats ignore booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 420 - format.json: "duration format" - "all string formats ignore nulls" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 421 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 422 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 423 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 424 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 425 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 426 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 427 - if-then-else.json: "if and then without else" - "valid through then" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 428 - if-then-else.json: "if and then without else" - "invalid through then" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 429 - if-then-else.json: "if and then without else" - "valid when if test fails" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 430 - if-then-else.json: "if and else without then" - "valid when if test passes" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 431 - if-then-else.json: "if and else without then" - "valid through else" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 432 - if-then-else.json: "if and else without then" - "invalid through else" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 433 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 434 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/minimum" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 435 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 436 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/multipleOf" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 437 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 438 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 439 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 440 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 441 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 442 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 443 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 444 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 445 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/then" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 446 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/const" 496s # }, 496s # { 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s 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" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s 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" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/int/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/int/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/additionalProperties" 496s # }, 496s # { 496s # "error": "subschemas 0, 1 are not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/int/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/properties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 449 - items.json: "a schema given for items" - "valid items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 450 - items.json: "a schema given for items" - "wrong type of items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 451 - items.json: "a schema given for items" - "ignores non-arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 452 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 453 - items.json: "an array of schemas for items" - "correct types" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 454 - items.json: "an array of schemas for items" - "wrong types" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/type" 496s # }, 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/1/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 455 - items.json: "an array of schemas for items" - "incomplete array of items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 456 - items.json: "an array of schemas for items" - "array with additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 457 - items.json: "an array of schemas for items" - "empty array" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 458 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 459 - items.json: "items with boolean schema (true)" - "any array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 460 - items.json: "items with boolean schema (true)" - "empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 461 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items" 496s # }, 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items" 496s # }, 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 462 - items.json: "items with boolean schema (false)" - "empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 463 - items.json: "items with boolean schemas" - "array with one item is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 464 - items.json: "items with boolean schemas" - "array with two items is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/1" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/1" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 465 - items.json: "items with boolean schemas" - "empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 466 - items.json: "items and subitems" - "valid items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 467 - items.json: "items and subitems" - "too many items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 468 - items.json: "items and subitems" - "too many sub-items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0/2", 496s # "keywordLocation": "/items/0/$ref/additionalItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/additionalItems" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0/2", 496s # "keywordLocation": "/items/0/$ref/additionalItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/additionalItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/additionalItems" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 469 - items.json: "items and subitems" - "wrong item" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/type", 496s # "error": "got object, not array", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/type", 496s # "error": "got object, not array", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 470 - items.json: "items and subitems" - "wrong sub-item" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/items", 496s # "error": "not all items are valid", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/items" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/item/items", 496s # "error": "not all items are valid", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/0/$ref/items" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 471 - items.json: "items and subitems" - "fewer items is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 472 - items.json: "nested items" - "valid nested array" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 473 - items.json: "nested items" - "nested array with invalid type" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/0/0/0/0", 496s # "keywordLocation": "/items/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0/0", 496s # "keywordLocation": "/items/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/0/0/0/0", 496s # "keywordLocation": "/items/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0/0", 496s # "keywordLocation": "/items/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 474 - items.json: "nested items" - "not deep enough" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/0/0/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/0/1/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/1", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/0/2/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/2", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/1/0/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/1/0", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/1/1/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/1/1", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/1/2/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/1/2", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "/0/0/0", 496s # "keywordLocation": "/items/items/items/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 475 - items.json: "single-form items with null instance elements" - "allows null elements" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 476 - items.json: "array-form items with null instance elements" - "allows null elements" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 477 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 478 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 479 - maxContains.json: "maxContains with contains" - "empty data" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 480 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 481 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 482 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 483 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 484 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 485 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 486 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 487 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 488 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 489 - maxItems.json: "maxItems validation" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 490 - maxItems.json: "maxItems validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 491 - maxItems.json: "maxItems validation" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 492 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 493 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 494 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 495 - maxLength.json: "maxLength validation" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 496 - maxLength.json: "maxLength validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 497 - maxLength.json: "maxLength validation" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 498 - maxLength.json: "maxLength validation" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 499 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 500 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 501 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 502 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 503 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 504 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 2 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 2 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 505 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 506 - maxProperties.json: "maxProperties validation" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 507 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 508 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 509 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 2 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 2 properties", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 510 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 511 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 0 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has more than 0 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 512 - maximum.json: "maximum validation" - "below the maximum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 513 - maximum.json: "maximum validation" - "boundary point is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 514 - maximum.json: "maximum validation" - "above the maximum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 3", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 515 - maximum.json: "maximum validation" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 516 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 517 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 518 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 519 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 300", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 300", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 520 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 521 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 522 - minContains.json: "minContains=1 with contains" - "empty data" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 523 - minContains.json: "minContains=1 with contains" - "no elements match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/contains/const" 496s # }, 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 524 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 525 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 526 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 527 - minContains.json: "minContains=2 with contains" - "empty data" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 528 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 529 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 530 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 531 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 532 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 533 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 534 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 535 - minContains.json: "maxContains = minContains" - "empty data" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 536 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 537 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 2 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 538 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 539 - minContains.json: "maxContains < minContains" - "empty data" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # }, 496s # { 496s # "error": "array contains fewer than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is not valid against any item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/contains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 540 - minContains.json: "maxContains < minContains" - "invalid minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains fewer than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 541 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 542 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # }, 496s # { 496s # "error": "array contains fewer than 3 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 543 - minContains.json: "minContains = 0 with no maxContains" - "empty data" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 544 - minContains.json: "minContains = 0 with no maxContains" - "minContains = 0 makes contains always pass" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 545 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 546 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 547 - minContains.json: "minContains = 0 with maxContains" - "too many" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array contains more than 1 matching items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/maxContains" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 548 - minItems.json: "minItems validation" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 549 - minItems.json: "minItems validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 550 - minItems.json: "minItems validation" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 1 item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 1 item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 551 - minItems.json: "minItems validation" - "ignores non-arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 552 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 553 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 1 item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 1 item", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 554 - minLength.json: "minLength validation" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 555 - minLength.json: "minLength validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 556 - minLength.json: "minLength validation" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 557 - minLength.json: "minLength validation" - "ignores non-strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 558 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 559 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 560 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 561 - minProperties.json: "minProperties validation" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 562 - minProperties.json: "minProperties validation" - "exact length is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 563 - minProperties.json: "minProperties validation" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 1 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 1 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 564 - minProperties.json: "minProperties validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 565 - minProperties.json: "minProperties validation" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 566 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 567 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 568 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 1 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object has fewer than 1 property", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 569 - minimum.json: "minimum validation" - "above the minimum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 570 - minimum.json: "minimum validation" - "boundary point is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 571 - minimum.json: "minimum validation" - "below the minimum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than 1.1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 572 - minimum.json: "minimum validation" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 573 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 574 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 575 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 576 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 577 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 578 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than -2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 579 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 580 - multipleOf.json: "by int" - "int by int" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 581 - multipleOf.json: "by int" - "int by int fail" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 582 - multipleOf.json: "by int" - "ignores non-numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 583 - multipleOf.json: "by number" - "zero is multiple of anything" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 584 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 585 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 1.5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 1.5", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 586 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 587 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 0.0001", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 0.0001", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 588 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 0.123456789", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is not a multiple of 0.123456789", 496s # "instanceLocation": "", 496s # "keywordLocation": "/multipleOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 589 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 590 - not.json: "not" - "allowed" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 591 - not.json: "not" - "disallowed" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 592 - not.json: "not multiple types" - "valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 593 - not.json: "not multiple types" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 594 - not.json: "not multiple types" - "other mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 595 - not.json: "not more complex schema" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 596 - not.json: "not more complex schema" - "other match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 597 - not.json: "not more complex schema" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 598 - not.json: "forbidden property" - "property present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/not" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/not" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 599 - not.json: "forbidden property" - "property absent" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 600 - not.json: "forbid everything with empty schema" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 601 - not.json: "forbid everything with empty schema" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 602 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 603 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 604 - not.json: "forbid everything with empty schema" - "null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 605 - not.json: "forbid everything with empty schema" - "object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 606 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 607 - not.json: "forbid everything with empty schema" - "array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 608 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 609 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 610 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 611 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 612 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 613 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 614 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 615 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 616 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 617 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 618 - not.json: "allow everything with boolean schema false" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 619 - not.json: "allow everything with boolean schema false" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 620 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 621 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 622 - not.json: "allow everything with boolean schema false" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 623 - not.json: "allow everything with boolean schema false" - "object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 624 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 625 - not.json: "allow everything with boolean schema false" - "array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 626 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 627 - not.json: "double negation" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 628 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 629 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/not" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 630 - oneOf.json: "oneOf" - "first oneOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 631 - oneOf.json: "oneOf" - "second oneOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 632 - oneOf.json: "oneOf" - "both oneOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 633 - oneOf.json: "oneOf" - "neither oneOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/type" 496s # }, 496s # { 496s # "error": "value is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/minimum" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/type" 496s # }, 496s # { 496s # "error": "value is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/minimum" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 634 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # }, 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 635 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 636 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 637 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 638 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 639 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 640 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/2" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1" 496s # }, 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/2" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 641 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 642 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 643 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 644 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/oneOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/properties" 496s # }, 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/oneOf/1/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/properties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/oneOf/0/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/properties" 496s # }, 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/oneOf/1/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/properties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 645 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 646 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 647 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/required" 496s # }, 496s # { 496s # "error": "object is missing properties: foo, baz", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/required" 496s # }, 496s # { 496s # "error": "object is missing properties: foo, baz", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 648 - oneOf.json: "oneOf with required" - "first valid - valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 649 - oneOf.json: "oneOf with required" - "second valid - valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 650 - oneOf.json: "oneOf with required" - "both valid - invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 651 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 652 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 653 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 654 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/required" 496s # }, 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: bar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/required" 496s # }, 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 655 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 656 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/oneOf/0/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/oneOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/oneOf/0/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/oneOf" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 657 - pattern.json: "pattern validation" - "a matching pattern is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 658 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 659 - pattern.json: "pattern validation" - "ignores booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 660 - pattern.json: "pattern validation" - "ignores integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 661 - pattern.json: "pattern validation" - "ignores floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 662 - pattern.json: "pattern validation" - "ignores objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 663 - pattern.json: "pattern validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 664 - pattern.json: "pattern validation" - "ignores null" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 665 - pattern.json: "pattern is not anchored" - "matches a substring" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 666 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 667 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 668 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.*o/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.*o/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 669 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.*o/type" 496s # }, 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foooooo", 496s # "keywordLocation": "/patternProperties/f.*o/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.*o/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 670 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 671 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 672 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 673 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 674 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 675 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 676 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/a", 496s # "keywordLocation": "/patternProperties/a*/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/a", 496s # "keywordLocation": "/patternProperties/a*/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 677 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 20", 496s # "instanceLocation": "/aaaa", 496s # "keywordLocation": "/patternProperties/aaa*/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than 20", 496s # "instanceLocation": "/aaaa", 496s # "keywordLocation": "/patternProperties/aaa*/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 678 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/aaa", 496s # "keywordLocation": "/patternProperties/a*/type" 496s # }, 496s # { 496s # "error": "value is greater than 20", 496s # "instanceLocation": "/aaaa", 496s # "keywordLocation": "/patternProperties/aaa*/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/aaa", 496s # "keywordLocation": "/patternProperties/a*/type" 496s # }, 496s # { 496s # "error": "value is greater than 20", 496s # "instanceLocation": "/aaaa", 496s # "keywordLocation": "/patternProperties/aaa*/maximum" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 679 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 680 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not boolean", 496s # "instanceLocation": "/a31b", 496s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not boolean", 496s # "instanceLocation": "/a31b", 496s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 681 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 682 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/a_X_3", 496s # "keywordLocation": "/patternProperties/X_/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/a_X_3", 496s # "keywordLocation": "/patternProperties/X_/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 683 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 684 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 685 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 686 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/foobar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/foobar", 496s # "keywordLocation": "/patternProperties/b.*" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 687 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 688 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 689 - properties.json: "object properties validation" - "both properties present and valid is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 690 - properties.json: "object properties validation" - "one property invalid is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 691 - properties.json: "object properties validation" - "both properties invalid is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/type" 496s # }, 496s # { 496s # "error": "got array, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 692 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 693 - properties.json: "object properties validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 694 - properties.json: "object properties validation" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 695 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 696 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 3 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/maxItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 3 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/maxItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 697 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 2 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.o/minItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 2 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/patternProperties/f.o/minItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 698 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 699 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 2 items", 496s # "instanceLocation": "/fxo", 496s # "keywordLocation": "/patternProperties/f.o/minItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has fewer than 2 items", 496s # "instanceLocation": "/fxo", 496s # "keywordLocation": "/patternProperties/f.o/minItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 700 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 701 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 702 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/additionalProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 703 - properties.json: "properties with boolean schema" - "no property present is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 704 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 705 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 706 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 707 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 708 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\tbar", 496s # "keywordLocation": "/properties/foo\tbar/type" 496s # }, 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\nbar", 496s # "keywordLocation": "/properties/foo\nbar/type" 496s # }, 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\fbar", 496s # "keywordLocation": "/properties/foo\fbar/type" 496s # }, 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\rbar", 496s # "keywordLocation": "/properties/foo\rbar/type" 496s # }, 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\"bar", 496s # "keywordLocation": "/properties/foo\"bar/type" 496s # }, 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\\bar", 496s # "keywordLocation": "/properties/foo\\bar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\tbar", 496s # "keywordLocation": "/properties/foo\tbar/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 709 - properties.json: "properties with null valued instance properties" - "allows null values" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 710 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 711 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 712 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 713 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/__proto__", 496s # "keywordLocation": "/properties/__proto__/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/__proto__", 496s # "keywordLocation": "/properties/__proto__/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 714 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/toString/length", 496s # "keywordLocation": "/properties/toString/properties/length/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/toString", 496s # "keywordLocation": "/properties/toString/properties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/toString/length", 496s # "keywordLocation": "/properties/toString/properties/length/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/toString", 496s # "keywordLocation": "/properties/toString/properties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 715 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not number", 496s # "instanceLocation": "/constructor", 496s # "keywordLocation": "/properties/constructor/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not number", 496s # "instanceLocation": "/constructor", 496s # "keywordLocation": "/properties/constructor/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 716 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 717 - propertyNames.json: "propertyNames validation" - "all property names valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 718 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 3", 496s # "instanceLocation": "/foobar", 496s # "keywordLocation": "/propertyNames/maxLength" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is greater than 3", 496s # "instanceLocation": "/foobar", 496s # "keywordLocation": "/propertyNames/maxLength" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 719 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 720 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 721 - propertyNames.json: "propertyNames validation" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 722 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 723 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 724 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "/aaA", 496s # "keywordLocation": "/propertyNames/pattern" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "/aaA", 496s # "keywordLocation": "/propertyNames/pattern" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 725 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 726 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 727 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 728 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/propertyNames" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "subschema is false", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/propertyNames" 496s # }, 496s # { 496s # "error": "not all property names are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/propertyNames" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 729 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 730 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 731 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 732 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 733 - recursiveRef.json: "$recursiveRef without $recursiveAnchor works like $ref" - "recursive mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$recursiveRef/additionalProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 734 - recursiveRef.json: "$recursiveRef without using nesting" - "integer matches at the outer level" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 735 - recursiveRef.json: "$recursiveRef without using nesting" - "single level match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 736 - recursiveRef.json: "$recursiveRef without using nesting" - "integer does not match as a property value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 737 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, properties match with inner definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 738 - recursiveRef.json: "$recursiveRef without using nesting" - "two levels, no match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 739 - recursiveRef.json: "$recursiveRef with nesting" - "integer matches at the outer level" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 740 - recursiveRef.json: "$recursiveRef with nesting" - "single level match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 741 - recursiveRef.json: "$recursiveRef with nesting" - "integer now matches as a property value" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 742 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with inner definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 743 - recursiveRef.json: "$recursiveRef with nesting" - "two levels, properties match with $recursiveRef" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 744 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer matches at the outer level" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 745 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "single level match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 746 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "integer does not match as a property value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 747 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, properties match with inner definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 748 - recursiveRef.json: "$recursiveRef with $recursiveAnchor: false works like $ref" - "two levels, integer does not match as a property value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 749 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer matches at the outer level" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 750 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "single level match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 751 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "integer does not match as a property value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 752 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, properties match with inner definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 753 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor works like $ref" - "two levels, integer does not match as a property value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/type", 496s # "error": "got integer, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/myobject.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 754 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match; no recursion" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 755 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node matches: recursion uses the inner schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 756 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the initial target schema resource" - "leaf node does not match: recursion uses the inner schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef6/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 757 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match; no recursion" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 758 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node matches: recursion only uses inner schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 759 - recursiveRef.json: "$recursiveRef with no $recursiveAnchor in the outer schema resource" - "leaf node does not match: recursion only uses inner schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/0/type", 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/0/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/type", 496s # "error": "got boolean, not object", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf/1/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties/$recursiveRef/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/1/additionalProperties/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf/1/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:4242/draft2019-09/recursiveRef7/base.json#/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 760 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to anyLeafNode - floats are allowed" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 761 - recursiveRef.json: "multiple dynamic paths to the $recursiveRef keyword" - "recurse to integerNode - floats are not allowed" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 496s # "error": "got number, not one of object, integer", 496s # "instanceLocation": "/november", 496s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_integerNode.json#/type", 496s # "error": "got number, not one of object, integer", 496s # "instanceLocation": "/november", 496s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_inner.json#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/recursiveRef8_main.json#/else", 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 762 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "numeric node" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 763 - recursiveRef.json: "dynamic $recursiveRef destination (not predictable at schema compile time)" - "integer node" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 496s # "error": "got number, not one of object, integer", 496s # "instanceLocation": "/november", 496s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/integerNode.json#/type", 496s # "error": "got number, not one of object, integer", 496s # "instanceLocation": "/november", 496s # "keywordLocation": "/else/$ref/additionalProperties/$recursiveRef/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/inner.json#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/main.json#/else", 496s # "error": "subschema is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/else" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 764 - ref.json: "root pointer ref" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 765 - ref.json: "root pointer ref" - "recursive match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 766 - ref.json: "root pointer ref" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 767 - ref.json: "root pointer ref" - "recursive mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/additionalProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 768 - ref.json: "relative pointer ref to object" - "match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 769 - ref.json: "relative pointer ref to object" - "mismatch" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/properties/foo/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/properties/foo/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 770 - ref.json: "relative pointer ref to array" - "match array" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 771 - ref.json: "relative pointer ref to array" - "mismatch array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/items/0/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/1/$ref/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/items/0/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/items/1/$ref/type" 496s # }, 496s # { 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 772 - ref.json: "escaped pointer ref" - "slash invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/slash", 496s # "keywordLocation": "/properties/slash/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/slash", 496s # "keywordLocation": "/properties/slash/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 773 - ref.json: "escaped pointer ref" - "tilde invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/tilde", 496s # "keywordLocation": "/properties/tilde/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/tilde", 496s # "keywordLocation": "/properties/tilde/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 774 - ref.json: "escaped pointer ref" - "percent invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/percent", 496s # "keywordLocation": "/properties/percent/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/percent", 496s # "keywordLocation": "/properties/percent/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 775 - ref.json: "escaped pointer ref" - "slash valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 776 - ref.json: "escaped pointer ref" - "tilde valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 777 - ref.json: "escaped pointer ref" - "percent valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 778 - ref.json: "nested refs" - "nested ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 779 - ref.json: "nested refs" - "nested ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/a/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/a/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 780 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 781 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/maxItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "array has more than 2 items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/maxItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 782 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/reffed/type", 496s # "error": "got string, not array", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/reffed/type", 496s # "error": "got string, not array", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 783 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 784 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 496s # "error": "value is less than 0", 496s # "instanceLocation": "/minLength", 496s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/$defs/nonNegativeInteger/minimum", 496s # "error": "value is less than 0", 496s # "instanceLocation": "/minLength", 496s # "keywordLocation": "/$ref/allOf/2/$ref/properties/minLength/$ref/$ref/minimum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/meta/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf/2/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://json-schema.org/draft/2019-09/schema#/allOf", 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 785 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 786 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/$ref", 496s # "keywordLocation": "/properties/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/$ref", 496s # "keywordLocation": "/properties/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 787 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 788 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/is-string/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/$ref", 496s # "keywordLocation": "/properties/$ref/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/is-string/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/$ref", 496s # "keywordLocation": "/properties/$ref/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 789 - ref.json: "$ref to boolean schema true" - "any value is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 790 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/bool", 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/bool", 496s # "error": "subschema is false", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 791 - ref.json: "Recursive references between schemas" - "valid tree" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 792 - ref.json: "Recursive references between schemas" - "invalid tree" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0/subtree/nodes/0", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/nodes/0/subtree/nodes", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0/subtree", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/nodes", 496s # "keywordLocation": "/properties/nodes/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties/value/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0/subtree/nodes/0", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/nodes/0/subtree/nodes", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0/subtree", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/node#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/nodes/0", 496s # "keywordLocation": "/properties/nodes/items/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties/nodes/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/nodes", 496s # "keywordLocation": "/properties/nodes/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 793 - ref.json: "refs with quote" - "object with numbers is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 794 - ref.json: "refs with quote" - "object with strings is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\"bar", 496s # "keywordLocation": "/properties/foo\"bar/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "/foo\"bar", 496s # "keywordLocation": "/properties/foo\"bar/$ref/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 795 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/prop1", 496s # "keywordLocation": "/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/prop1", 496s # "keywordLocation": "/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 796 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 797 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/enum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 798 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 799 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 800 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 801 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 802 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo/bar", 496s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 803 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 804 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 805 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 806 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 807 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 808 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 496s # "error": "value is greater than 10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id1/int.json#/maximum", 496s # "error": "value is greater than 10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 809 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 810 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 496s # "error": "value is greater than 10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint/maximum", 496s # "error": "value is greater than 10", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/maximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 811 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 812 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 496s # "error": "value is less than 30", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/minimum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 496s # "error": "value is less than 30", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/minimum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 813 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 814 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 815 - ref.json: "URN base URI with NSS" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 816 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 817 - ref.json: "URN base URI with r-component" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 818 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 819 - ref.json: "URN base URI with q-component" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 820 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 821 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 822 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 823 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 824 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 825 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 826 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 827 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 828 - ref.json: "ref to if" - "an integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 829 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 830 - ref.json: "ref to then" - "an integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 831 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 832 - ref.json: "ref to else" - "an integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 833 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 834 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 835 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 836 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 837 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 838 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 839 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 840 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs//$defs//type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/$ref/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs//$defs//type", 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/$ref/type" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 841 - ref.json: "$ref with $recursiveAnchor" - "extra items allowed for inner arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 842 - ref.json: "$ref with $recursiveAnchor" - "extra items disallowed for root" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/schemas/unevaluated-items-are-disallowed#/unevaluatedItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 843 - refRemote.json: "remote ref" - "remote ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 844 - refRemote.json: "remote ref" - "remote ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 845 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 846 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 847 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 848 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 849 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 850 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 851 - refRemote.json: "base URI change" - "base URI change ref valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 852 - refRemote.json: "base URI change" - "base URI change ref invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/0/0", 496s # "keywordLocation": "/items/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChange/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/items/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 853 - refRemote.json: "base URI change - change folder" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 854 - refRemote.json: "base URI change - change folder" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/list/0", 496s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/list", 496s # "keywordLocation": "/properties/list/$ref/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/list/0", 496s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolder/#/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/list", 496s # "keywordLocation": "/properties/list/$ref/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs1.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 855 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 856 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/list/0", 496s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/list", 496s # "keywordLocation": "/properties/list/$ref/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "/list/0", 496s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/baseUriChangeFolderInSubschema/#/$defs/bar/items", 496s # "error": "subschema is not valid against all items", 496s # "instanceLocation": "/list", 496s # "keywordLocation": "/properties/list/$ref/items" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/scope_change_defs2.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 857 - refRemote.json: "root ref in remote ref" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 858 - refRemote.json: "root ref in remote ref" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 859 - refRemote.json: "root ref in remote ref" - "object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 496s # "error": "got object, not null", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf/0/type", 496s # "error": "got object, not null", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/name-defs.json#/$defs/orNull/anyOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/anyOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/object#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 860 - refRemote.json: "remote ref with ref to defs" - "invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/$ref/$ref/properties/bar/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/ref-and-defs.json#/$defs/inner/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 861 - refRemote.json: "remote ref with ref to defs" - "valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 862 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 863 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/A/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 864 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/name/foo", 496s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/name/foo", 496s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/foo-ref-string.json#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/name", 496s # "keywordLocation": "/properties/name/$ref/properties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/some-id#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 865 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 866 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 867 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 868 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 869 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 870 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 871 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 872 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 873 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/detached/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/$ref/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 874 - required.json: "required validation" - "present required property is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 875 - required.json: "required validation" - "non-present required property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing property: foo", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 876 - required.json: "required validation" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 877 - required.json: "required validation" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 878 - required.json: "required validation" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 879 - required.json: "required default validation" - "not required by default" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 880 - required.json: "required with empty array" - "property not required" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 881 - required.json: "required with escaped characters" - "object with all properties present is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 882 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 883 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 884 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 885 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, toString, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, toString, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 886 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: toString, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: toString, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 887 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, constructor", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 888 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, toString", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "object is missing properties: __proto__, toString", 496s # "instanceLocation": "", 496s # "keywordLocation": "/required" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 889 - required.json: "required properties whose names are Javascript object property names" - "all present" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 890 - type.json: "integer type matches integers" - "an integer is an integer" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 891 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 892 - type.json: "integer type matches integers" - "a float is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got number, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 893 - type.json: "integer type matches integers" - "a string is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 894 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got string, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 895 - type.json: "integer type matches integers" - "an object is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got object, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 896 - type.json: "integer type matches integers" - "an array is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got array, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got array, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 897 - type.json: "integer type matches integers" - "a boolean is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got boolean, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 898 - type.json: "integer type matches integers" - "null is not an integer" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got null, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/integer.json#/type", 496s # "error": "got null, not integer", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 899 - type.json: "number type matches numbers" - "an integer is a number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 900 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 901 - type.json: "number type matches numbers" - "a float is a number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 902 - type.json: "number type matches numbers" - "a string is not a number" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 903 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 904 - type.json: "number type matches numbers" - "an object is not a number" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 905 - type.json: "number type matches numbers" - "an array is not a number" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 906 - type.json: "number type matches numbers" - "a boolean is not a number" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 907 - type.json: "number type matches numbers" - "null is not a number" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 908 - type.json: "string type matches strings" - "1 is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 909 - type.json: "string type matches strings" - "a float is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got number, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got number, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 910 - type.json: "string type matches strings" - "a string is a string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 911 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 912 - type.json: "string type matches strings" - "an empty string is still a string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 913 - type.json: "string type matches strings" - "an object is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 914 - type.json: "string type matches strings" - "an array is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got array, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got array, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 915 - type.json: "string type matches strings" - "a boolean is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got boolean, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got boolean, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 916 - type.json: "string type matches strings" - "null is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got null, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got null, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 917 - type.json: "object type matches objects" - "an integer is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 918 - type.json: "object type matches objects" - "a float is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 919 - type.json: "object type matches objects" - "a string is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 920 - type.json: "object type matches objects" - "an object is an object" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 921 - type.json: "object type matches objects" - "an array is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 922 - type.json: "object type matches objects" - "a boolean is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 923 - type.json: "object type matches objects" - "null is not an object" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 924 - type.json: "array type matches arrays" - "an integer is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 925 - type.json: "array type matches arrays" - "a float is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 926 - type.json: "array type matches arrays" - "a string is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 927 - type.json: "array type matches arrays" - "an object is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 928 - type.json: "array type matches arrays" - "an array is an array" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 929 - type.json: "array type matches arrays" - "a boolean is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 930 - type.json: "array type matches arrays" - "null is not an array" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not array", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 931 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 932 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 933 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 934 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 935 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 936 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 937 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 938 - type.json: "boolean type matches booleans" - "true is a boolean" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 939 - type.json: "boolean type matches booleans" - "false is a boolean" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 940 - type.json: "boolean type matches booleans" - "null is not a boolean" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not boolean", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 941 - type.json: "null type matches only the null object" - "an integer is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 942 - type.json: "null type matches only the null object" - "a float is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 943 - type.json: "null type matches only the null object" - "zero is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 944 - type.json: "null type matches only the null object" - "a string is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 945 - type.json: "null type matches only the null object" - "an empty string is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 946 - type.json: "null type matches only the null object" - "an object is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 947 - type.json: "null type matches only the null object" - "an array is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 948 - type.json: "null type matches only the null object" - "true is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 949 - type.json: "null type matches only the null object" - "false is not null" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 950 - type.json: "null type matches only the null object" - "null is null" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 951 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 952 - type.json: "multiple types can be specified in an array" - "a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 953 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got number, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 954 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got object, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 955 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got array, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 956 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got boolean, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 957 - type.json: "multiple types can be specified in an array" - "null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not one of integer, string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 958 - type.json: "type as array with one item" - "string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 959 - type.json: "type as array with one item" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 960 - type.json: "type: array or object" - "array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 961 - type.json: "type: array or object" - "object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 962 - type.json: "type: array or object" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 963 - type.json: "type: array or object" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 964 - type.json: "type: array or object" - "null is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got null, not one of array, object", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 965 - type.json: "type: array, object or null" - "array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 966 - type.json: "type: array, object or null" - "object is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 967 - type.json: "type: array, object or null" - "null is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 968 - type.json: "type: array, object or null" - "number is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of array, object, null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not one of array, object, null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 969 - type.json: "type: array, object or null" - "string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not one of array, object, null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not one of array, object, null", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 970 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 971 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 972 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 973 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 974 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 975 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 976 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 977 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 978 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 979 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 980 - unevaluatedItems.json: "unevaluatedItems with items and additionalItems" - "unevaluatedItems doesn't apply" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 981 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "invalid under unevaluatedItems" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 982 - unevaluatedItems.json: "unevaluatedItems with ignored additionalItems" - "all valid under unevaluatedItems" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 983 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "invalid under unevaluatedItems" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got integer, not string", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 984 - unevaluatedItems.json: "unevaluatedItems with ignored applicator additionalItems" - "all valid under unevaluatedItems" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 985 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 986 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 987 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 988 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 989 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not boolean", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems/type" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 990 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with no additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 991 - unevaluatedItems.json: "unevaluatedItems with nested items and additionalItems" - "with additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 992 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 993 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 994 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 995 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 996 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 997 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 998 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 999 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1000 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1001 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1002 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/3", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1003 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1004 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/4", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/4", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1005 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1006 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1007 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1008 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1009 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1010 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1011 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with no unevaluated items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1012 - unevaluatedItems.json: "unevaluatedItems with $recursiveRef" - "with unevaluated items" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1/3", 496s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/1/3", 496s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items/1/unevaluatedItems", 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/1", 496s # "keywordLocation": "/$ref/items/1/unevaluatedItems" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-recursive-ref/tree#/items", 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/items" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1013 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/allOf/1/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/allOf/1/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1014 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1015 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/foo/1", 496s # "keywordLocation": "/properties/foo/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/unevaluatedItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/foo/1", 496s # "keywordLocation": "/properties/foo/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/unevaluatedItems" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1016 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1017 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1018 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1019 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1020 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1021 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1022 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1023 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1024 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/unevaluatedItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1025 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1026 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1027 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1028 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1029 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 3", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties/minLength" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 3", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties/minLength" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1030 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1031 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1032 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1033 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1034 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1035 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1036 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1037 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1038 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1039 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1040 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1041 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1042 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1043 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1044 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1045 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1046 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1047 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1048 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1049 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/quux", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/baz", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with no unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with $recursiveRef" - "with unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/branches/foo", 496s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/branches", 496s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/branches/foo", 496s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties/branches/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/branches", 496s # "keywordLocation": "/$ref/properties/branches/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-recursive-ref/tree#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1077 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1078 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1079 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1080 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1081 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1082 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1083 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1084 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1085 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1086 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1087 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1088 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/1/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 1 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1089 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1090 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/faz", 496s # "keywordLocation": "/properties/foo/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo/faz", 496s # "keywordLocation": "/properties/foo/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/properties/foo/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1091 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1092 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1093 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "subschema 0 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1094 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1095 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1096 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x/y", 496s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x/y", 496s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1102 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1103 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x/x/y", 496s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/x/x", 496s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/properties/x/$ref/properties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x/x/y", 496s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/unevaluatedProperties", 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "/x/x", 496s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/properties/x/$ref/properties" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1104 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/required", 496s # "error": "object is missing property: x", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 496s # }, 496s # { 496s # "error": "object is missing property: y", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/required", 496s # "error": "object is missing property: x", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 496s # }, 496s # { 496s # "error": "object is missing property: y", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1105 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/required", 496s # "error": "object is missing property: x", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 496s # }, 496s # { 496s # "error": "object is missing property: y", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/required", 496s # "error": "object is missing property: x", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 496s # }, 496s # { 496s # "error": "object is missing property: y", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1106 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1107 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1108 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1109 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1110 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1111 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf/2/oneOf" 496s # }, 496s # { 496s # "error": "subschema 2 is not valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/allOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/x", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/y", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1112 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 496s # "error": "object is missing property: c", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 496s # "error": "object is missing property: d", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 496s # "error": "object is missing property: b", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 496s # "error": "object is missing property: xx", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 496s # "error": "object is missing property: all", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 496s # "error": "object is missing property: c", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 496s # "error": "object is missing property: d", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 496s # "error": "object is missing property: b", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 496s # "error": "object is missing property: xx", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 496s # "error": "object is missing property: all", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1113 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1114 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1115 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1116 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1117 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1118 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1119 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1120 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1121 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1122 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 496s # "error": "object is missing property: b", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 496s # "error": "object is missing property: xx", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 496s # "error": "object is missing property: all", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 496s # "error": "object is missing property: b", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 496s # "error": "object is missing property: xx", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 496s # "error": "object is missing property: all", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1123 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1124 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1125 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1126 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1127 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 1, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 1, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/b", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1128 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/c", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1129 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 496s # "error": "multiple subschemas are valid: 0, 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/0/$ref/oneOf" 496s # }, 496s # { 496s # "error": "object is missing property: a", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf/1/required" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/d", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/xx", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1130 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1131 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1132 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "multiple subschemas are valid: 0, 1", 496s # "instanceLocation": "", 496s # "keywordLocation": "/oneOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1133 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1134 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1135 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1136 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1137 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1138 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1139 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1140 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1141 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/a", 496s # "keywordLocation": "/unevaluatedProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "/a", 496s # "keywordLocation": "/unevaluatedProperties/type" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1142 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1143 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1144 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/foo", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1145 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/unevaluatedProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/unevaluatedProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1146 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1147 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1148 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1149 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1150 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1151 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1152 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1153 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1154 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1155 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1156 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1157 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1158 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1159 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1160 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1161 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1162 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 2 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1163 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1164 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1165 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1166 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1167 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1168 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1169 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1170 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 4 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 4 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1171 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1172 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1173 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1174 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1175 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1176 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1177 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1178 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1179 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1180 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1181 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 2 and 3 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 2 and 3 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1182 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 2 and 3 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 2 and 3 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1183 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1184 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1185 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1186 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "items at indices 0 and 1 are not unique", 496s # "instanceLocation": "", 496s # "keywordLocation": "/uniqueItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1187 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1188 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1189 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1190 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1191 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1192 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1193 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1194 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1195 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1196 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1197 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1198 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1199 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1200 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1201 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1202 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1203 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1204 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1205 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1206 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1207 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1208 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1209 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1210 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1211 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1212 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1213 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1214 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1215 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional item not permitted", 496s # "instanceLocation": "/2", 496s # "keywordLocation": "/additionalItems" 496s # }, 496s # { 496s # "error": "subschema is not valid against all additional items", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1216 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 496s # "error": "property not permitted", 496s # "instanceLocation": "/badProperty", 496s # "keywordLocation": "/properties/badProperty" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 496s # "error": "property not permitted", 496s # "instanceLocation": "/badProperty", 496s # "keywordLocation": "/properties/badProperty" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/properties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1217 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1218 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1219 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not number", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1220 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1221 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1222 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 496s # "error": "got object, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1223 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1224 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1225 - optional/bignum.json: "integer" - "a bignum is an integer" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1226 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1227 - optional/bignum.json: "number" - "a bignum is a number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1228 - optional/bignum.json: "number" - "a negative bignum is a number" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1229 - optional/bignum.json: "string" - "a bignum is not a string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/nested/string.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/type" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1230 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1231 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMaximum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1232 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1233 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 496s # "instanceLocation": "", 496s # "keywordLocation": "/exclusiveMinimum" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1234 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item not a string is invalid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/$ref/prefixItems/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/prefixItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems/0/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "/0", 496s # "keywordLocation": "/$ref/prefixItems/0/type" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/prefixItems.json#/prefixItems", 496s # "error": "not all items are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref/prefixItems" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1235 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "first item is a string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1236 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "missing bar is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1237 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1238 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1239 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1240 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":[\"foo\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1241 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1242 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1243 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1244 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1245 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1246 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1247 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1248 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1249 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1250 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"foo\":1,\"quux\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1251 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":1,\"quux\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1252 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"quux\":1}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1253 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1254 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1255 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"foo\":2,\"foo\\nbar\":1}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"foo\\nbar\":[\"foo\\rbar\"],\"foo\\\"bar\":[\"foo'bar\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1256 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"foo\\\"bar\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"foo\\nbar\":[\"foo\\rbar\"],\"foo\\\"bar\":[\"foo'bar\"]}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1257 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1258 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1259 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":2,\"foo\":\"quux\"}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1260 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":\"quux\",\"foo\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1261 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":\"quux\",\"foo\":\"quux\"}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1262 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1263 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1264 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1265 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1266 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":2}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":false,\"foo\":true}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1267 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"bar\":2,\"foo\":1}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"bar\":false,\"foo\":true}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1268 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1269 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1270 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"foo'bar\":{\"foo\\\"bar\":1}}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1271 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"a\":2,\"foo\\tbar\":1}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1272 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"foo'bar\":1}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s # 496s ok 1273 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1274 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1275 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1276 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1277 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1278 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1279 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1280 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1281 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1282 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "\"߀\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1283 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "\"߀\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1284 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false # 496s 1..1 496s } 496s ok 1285 - 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" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "\"߀\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1286 - 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" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "\"߀\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1287 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true # 496s 1..1 496s } 496s ok 1288 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "\"é\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\w$\",\"type\":\"string\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1289 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false # 496s 1..1 496s } 496s ok 1290 - 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" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "\"é\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\W$\",\"type\":\"string\"}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1291 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1292 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1293 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1294 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1295 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1296 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "\"\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\s$\",\"type\":\"string\"}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1297 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1307 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "\"\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\S$\",\"type\":\"string\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1308 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1310 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1311 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1313 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1314 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1315 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1316 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1317 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1318 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # 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.\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"\\\\wcole\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1319 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # 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.\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"\\\\wcole\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1320 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1321 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1322 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1323 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1324 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1325 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1326 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "\"৪২\"" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"pattern\":\"^\\\\d+$\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1327 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1328 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1329 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1330 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1331 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1332 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1333 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/L'ÉCOLE", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/L'ÉCOLE", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1334 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1335 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"l'école\":\"pas de vraie vie\"}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1336 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"l'école\":\"pas de vraie vie\"}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1337 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/L'ÉCOLE", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/L'ÉCOLE", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1338 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/l'école", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/l'école", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1339 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/l'école", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/l'école", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1340 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1341 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1342 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/-%#", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/-%#", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1343 - 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" 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected false; got true 496s # data: "{\"৪২\":\"khajit has wares if you have coin\"}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"additionalProperties\":false,\"patternProperties\":{\"^\\\\d+$\":true},\"type\":\"object\"}" 496s # result: { 496s # "valid": true 496s # } 496s 1..1 496s } 496s ok 1344 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1345 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/-%#", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "additional property not permitted", 496s # "instanceLocation": "/-%#", 496s # "keywordLocation": "/additionalProperties" 496s # }, 496s # { 496s # "error": "not all additional properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/additionalProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1346 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1347 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1348 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1349 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1350 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 496s # "error": "value does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/enum" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/id/my_identifier.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1351 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1352 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "length is less than 2", 496s # "instanceLocation": "", 496s # "keywordLocation": "/minLength" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1353 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s # 496s ok 1354 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1355 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1356 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1357 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1358 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1359 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1360 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "pattern does not match", 496s # "instanceLocation": "", 496s # "keywordLocation": "/pattern" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1361 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1362 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1363 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1364 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/🐲", 496s # "keywordLocation": "/patternProperties/^🐲*$/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/🐲", 496s # "keywordLocation": "/patternProperties/^🐲*$/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1365 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/🐲🐲", 496s # "keywordLocation": "/patternProperties/^🐲*$/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "got string, not integer", 496s # "instanceLocation": "/🐲🐲", 496s # "keywordLocation": "/patternProperties/^🐲*$/type" 496s # }, 496s # { 496s # "error": "not all properties are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/patternProperties" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s ok 1366 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "{\"bar\":3}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"properties\":{\"bar\":{\"$ref\":\"#/unknown-keyword\"}},\"unknown-keyword\":{\"type\":\"integer\"}}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1367 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false # 496s 1..1 496s } 496s ok 1368 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "{\"bar\":3}" 496s # schema: "{\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"properties\":{\"bar\":{\"$ref\":\"#/properties/foo/unknown-keyword\"},\"foo\":{\"unknown-keyword\":{\"type\":\"integer\"}}}}" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1369 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 496s # "instanceLocation": "/bar", 496s # "keywordLocation": "/properties/bar/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false # 496s 1..1 496s } 496s ok 1370 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "/base#/$ref", 496s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "/base#/$ref", 496s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s not ok 1 - evaluation result is incorrect # 496s # Failed test (with amnesty) 'evaluation result is incorrect' 496s # at t/zzz-acceptance-draft2019-09.t line 52. 496s # expected true; got false 496s # data: "\"a string\"" 496s # schema: "{\"$id\":\"/base\",\"$ref\":\"#/examples/0\",\"$schema\":\"https://json-schema.org/draft/2019-09/schema\",\"examples\":[{\"type\":\"string\"}]}" 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "/base#/$ref", 496s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s 1..1 496s } 496s ok 1371 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "/base#/$ref", 496s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "/base#/$ref", 496s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 496s # "instanceLocation": "", 496s # "keywordLocation": "/$ref" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false # 496s 1..1 496s } 496s # 496s ok 1372 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 496s # result: { 496s # "valid": true 496s # } 496s # short-circuited result: { 496s # "valid": true 496s # } 496s ok 1 - test passes: data is valid: true 496s 1..1 496s } 496s ok 1373 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 496s # "error": "got null, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/2/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 496s # "error": "got null, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/2/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s ok 1374 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 496s # result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/2/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s # short-circuited result: { 496s # "errors": [ 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/0/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 496s # "error": "subschema is valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/1/$ref/not" 496s # }, 496s # { 496s # "absoluteKeywordLocation": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json#/type", 496s # "error": "got integer, not string", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf/2/$ref/type" 496s # }, 496s # { 496s # "error": "no subschemas are valid", 496s # "instanceLocation": "", 496s # "keywordLocation": "/anyOf" 496s # } 496s # ], 496s # "valid": false 496s # } 496s ok 1 - test passes: data is valid: false 496s 1..1 496s } 496s # 496s # 496s # generated with: Test::JSON::Schema::Acceptance 1.026 496s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 496s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 496s # specification version: draft2019-09 496s # optional tests included: yes 496s # skipping directory: optional/format 496s # 496s # filename pass todo-fail fail 496s # --------------------------------------------------------------- 496s # additionalItems.json 20 0 0 496s # additionalProperties.json 21 0 0 496s # allOf.json 30 0 0 496s # anchor.json 8 0 0 496s # anyOf.json 18 0 0 496s # boolean_schema.json 18 0 0 496s # const.json 50 0 0 496s # contains.json 21 0 0 496s # content.json 18 0 0 496s # default.json 7 0 0 496s # defs.json 2 0 0 496s # dependentRequired.json 20 0 0 496s # dependentSchemas.json 20 0 0 496s # enum.json 45 0 0 496s # exclusiveMaximum.json 4 0 0 496s # exclusiveMinimum.json 4 0 0 496s # format.json 114 0 0 496s # if-then-else.json 26 0 0 496s # infinite-loop-detection.json 2 0 0 496s # items.json 28 0 0 496s # maxContains.json 12 0 0 496s # maxItems.json 6 0 0 496s # maxLength.json 7 0 0 496s # maxProperties.json 10 0 0 496s # maximum.json 8 0 0 496s # minContains.json 28 0 0 496s # minItems.json 6 0 0 496s # minLength.json 7 0 0 496s # minProperties.json 8 0 0 496s # minimum.json 11 0 0 496s # multipleOf.json 10 0 0 496s # not.json 40 0 0 496s # oneOf.json 27 0 0 496s # pattern.json 9 0 0 496s # patternProperties.json 23 0 0 496s # properties.json 28 0 0 496s # propertyNames.json 13 0 0 496s # recursiveRef.json 34 0 0 496s # ref.json 79 0 0 496s # refRemote.json 31 0 0 496s # required.json 16 0 0 496s # type.json 80 0 0 496s # unevaluatedItems.json 55 0 0 496s # unevaluatedProperties.json 122 0 0 496s # uniqueItems.json 69 0 0 496s # vocabulary.json 5 0 0 496s # optional/anchor.json 4 0 0 496s # optional/bignum.json 9 0 0 496s # optional/cross-draft.json 3 0 0 496s # optional/dependencies-compatibility.json 22 14 0 496s # optional/ecmascript-regex.json 60 14 0 496s # optional/float-overflow.json 1 0 0 496s # optional/id.json 3 0 0 496s # optional/no-schema.json 3 0 0 496s # optional/non-bmp-regex.json 12 0 0 496s # optional/refOfUnknownKeyword.json 3 3 0 496s # optional/unknownKeyword.json 3 0 0 496s # --------------------------------------------------------------- 496s # TOTAL 1343 31 0 496s # 496s # Congratulations, all non-optional tests are passing! 496s # 496s ok 1375 - no leaks in the main evaluator object 496s ok 1376 - no leaks in the short-circuiting evaluator object 496s 1..1376 496s ok 498s t/zzz-acceptance-draft2020-12-format.t .. 498s # AUTHOR_TESTING: 498s # AUTOMATED_TESTING: 1 498s # EXTENDED_TESTING: 498s # NO_TODO: 498s # TEST_DIR: 498s # NO_SHORT_CIRCUIT: 498s # 498s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12/optional/format against draft2020-12... 498s # 498s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date-time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 32 - date.json: "validation of date strings" - "a valid date string" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 64 - date.json: "validation of date strings" - "invalid month" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid date", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 73 - duration.json: "validation of duration strings" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 74 - duration.json: "validation of duration strings" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 75 - duration.json: "validation of duration strings" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 76 - duration.json: "validation of duration strings" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 77 - duration.json: "validation of duration strings" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 78 - duration.json: "validation of duration strings" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 79 - duration.json: "validation of duration strings" - "a valid duration string" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 80 - duration.json: "validation of duration strings" - "an invalid duration string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 81 - duration.json: "validation of duration strings" - "no elements present" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 82 - duration.json: "validation of duration strings" - "no time elements present" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 83 - duration.json: "validation of duration strings" - "no date or time elements present" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 84 - duration.json: "validation of duration strings" - "elements out of order" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 85 - duration.json: "validation of duration strings" - "missing time separator" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 86 - duration.json: "validation of duration strings" - "time element in the date position" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 87 - duration.json: "validation of duration strings" - "four years duration" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 88 - duration.json: "validation of duration strings" - "zero time, in seconds" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 89 - duration.json: "validation of duration strings" - "zero time, in days" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 90 - duration.json: "validation of duration strings" - "one month duration" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 91 - duration.json: "validation of duration strings" - "one minute duration" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 92 - duration.json: "validation of duration strings" - "one and a half days, in hours" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 93 - duration.json: "validation of duration strings" - "one and a half days, in days and hours" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 94 - duration.json: "validation of duration strings" - "two weeks" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 95 - duration.json: "validation of duration strings" - "weeks cannot be combined with other units" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 96 - duration.json: "validation of duration strings" - "invalid non-ASCII '২' (a Bengali 2)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 97 - duration.json: "validation of duration strings" - "element without unit" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid duration", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 98 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 99 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 100 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 101 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 102 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 103 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 104 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 105 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 106 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 107 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 108 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 109 - email.json: "validation of e-mail addresses" - "a quoted string with a space in the local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 110 - email.json: "validation of e-mail addresses" - "a quoted string with a double dot in the local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 111 - email.json: "validation of e-mail addresses" - "a quoted string with a @ in the local part is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 112 - email.json: "validation of e-mail addresses" - "an IPv4-address-literal after the @ is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 113 - email.json: "validation of e-mail addresses" - "an IPv6-address-literal after the @ is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 114 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 115 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 116 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 117 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 118 - email.json: "validation of e-mail addresses" - "an invalid domain" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"joe.bloggs@invalid=domain.com\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"email\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s ok 119 - email.json: "validation of e-mail addresses" - "an invalid IPv4-address-literal" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"joe.bloggs@[127.0.0.300]\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"email\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s # 498s ok 120 - hostname.json: "validation of host names" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 121 - hostname.json: "validation of host names" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 122 - hostname.json: "validation of host names" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 123 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 124 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 125 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 126 - hostname.json: "validation of host names" - "a valid host name" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 127 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 128 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 129 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 130 - hostname.json: "validation of host names" - "a host name with a component too long" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 131 - hostname.json: "validation of host names" - "starts with hyphen" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 132 - hostname.json: "validation of host names" - "ends with hyphen" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 133 - hostname.json: "validation of host names" - "starts with underscore" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 134 - hostname.json: "validation of host names" - "ends with underscore" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 135 - hostname.json: "validation of host names" - "contains underscore" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 136 - hostname.json: "validation of host names" - "maximum label length" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 137 - hostname.json: "validation of host names" - "exceeds maximum label length" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 138 - hostname.json: "validation of host names" - "single label" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"hostname\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 139 - hostname.json: "validation of host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"host-name\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 140 - hostname.json: "validation of host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"h0stn4me\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 141 - hostname.json: "validation of host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"1host\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 142 - hostname.json: "validation of host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"hostnam3\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s # 498s ok 143 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 144 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 145 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 146 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 147 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 148 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 149 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 150 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 151 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 152 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-email", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 153 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 154 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 155 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 156 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 157 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 158 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 159 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 160 - 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" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 161 - 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" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"실〮례.테스트\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s ok 162 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 163 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 164 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"xn--ihqwcrb4cv8a8dqg056pqjye\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 165 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 166 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 167 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 168 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 169 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 170 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 171 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 172 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 173 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"ßς་〇\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 174 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"Û½Û¾\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 175 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 176 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 177 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 178 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 179 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 180 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 181 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"l·l\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 182 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 183 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 184 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"α͵β\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 185 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 186 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 187 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"א׳ב\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 188 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 189 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 190 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"א״ב\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 191 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 192 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 193 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"・ぁ\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 194 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"・ァ\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 195 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"・丈\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 196 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 197 - 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" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"ب٠ب\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 198 - 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" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"Û°0\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 199 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 200 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false # 498s 1..1 498s } 498s ok 201 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"क्‍ष\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 202 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"क्‌ष\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 203 - 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" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"بي‌بي\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 204 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"hostname\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 205 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"host-name\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 206 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"h0stn4me\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 207 - idn-hostname.json: "validation of internationalized host names" - "single label starting with digit" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"1host\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s ok 208 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected true; got false 498s # data: "\"hostnam3\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"idn-hostname\"}" 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid idn-hostname", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s 1..1 498s } 498s # 498s ok 209 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 210 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 211 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 212 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 213 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 214 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 215 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 216 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 217 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 218 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 219 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 220 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 221 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 222 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 223 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 224 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv4", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 225 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 226 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 227 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 228 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 229 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 230 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 231 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 232 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 233 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 234 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 235 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 236 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 237 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 238 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 239 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 240 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 241 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 242 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 243 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 244 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 245 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 246 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 247 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 248 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 249 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 250 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 251 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 252 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 253 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 254 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 255 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 256 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 257 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 258 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 259 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 260 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 261 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 262 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 263 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 264 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid ipv6", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 265 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 266 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 267 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 268 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 269 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 270 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 271 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 272 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 273 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 274 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"\\\\\\\\WINDOWS\\\\filëßåré\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"iri-reference\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s ok 275 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 276 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 277 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"#ƒräg\\\\mênt\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"iri-reference\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s # 498s ok 278 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 279 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 280 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 281 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 282 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 283 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 284 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 285 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 286 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 287 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 288 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 289 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"http://2001:0db8:85a3:0000:0000:8a2e:0370:7334\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"iri\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s ok 290 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 291 - iri.json: "validation of IRIs" - "an invalid IRI" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 292 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid iri", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 297 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 298 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 299 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 300 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 301 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 302 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 303 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 304 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 305 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 306 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 307 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 308 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 309 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 310 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 311 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 312 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 313 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 314 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 315 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 316 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 317 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 318 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 319 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 320 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 321 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 322 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 323 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 324 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 325 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 326 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 327 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 328 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 329 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 330 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 331 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 332 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 333 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 334 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 335 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 336 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 337 - regex.json: "validation of regular expressions" - "a valid regular expression" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 338 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid regex", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid regex", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 339 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 340 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 341 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 342 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 343 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 344 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 345 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 346 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 347 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 348 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 349 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 350 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 351 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 352 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 353 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 354 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 355 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid relative-json-pointer", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 356 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s # 498s ok 357 - time.json: "validation of time strings" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 358 - time.json: "validation of time strings" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 359 - time.json: "validation of time strings" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 360 - time.json: "validation of time strings" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 361 - time.json: "validation of time strings" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 362 - time.json: "validation of time strings" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 363 - time.json: "validation of time strings" - "a valid time string" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 364 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 365 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 366 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 367 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 368 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 369 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 370 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 371 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 372 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 373 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 374 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 375 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 376 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 377 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 378 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 379 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 380 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 381 - time.json: "validation of time strings" - "a valid time string with second fraction" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 382 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 383 - time.json: "validation of time strings" - "a valid time string with plus offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 384 - time.json: "validation of time strings" - "a valid time string with minus offset" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 385 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 386 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 387 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 388 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 389 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 390 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 391 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 392 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 393 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 394 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 395 - time.json: "validation of time strings" - "an invalid offset indicator" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 396 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 397 - time.json: "validation of time strings" - "no time offset" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 398 - time.json: "validation of time strings" - "no time offset with second fraction" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 399 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 400 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 401 - time.json: "validation of time strings" - "contains letters" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid time", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 402 - unknown.json: "unknown format" - "unknown formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 403 - unknown.json: "unknown format" - "unknown formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 404 - unknown.json: "unknown format" - "unknown formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 405 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 406 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 407 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 408 - unknown.json: "unknown format" - "unknown formats ignore strings" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s # 498s ok 409 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 410 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 411 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 412 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 413 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 414 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 415 - uri-reference.json: "validation of URI References" - "a valid URI" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 416 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 417 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 418 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid uri-reference", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid uri-reference", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s ok 419 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 420 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true 498s 1..1 498s } 498s ok 421 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 498s # result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid uri-reference", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s # short-circuited result: { 498s # "errors": [ 498s # { 498s # "error": "not a valid uri-reference", 498s # "instanceLocation": "", 498s # "keywordLocation": "/format" 498s # } 498s # ], 498s # "valid": false 498s # } 498s ok 1 - test passes: data is valid: false 498s 1..1 498s } 498s # 498s ok 422 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 423 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 424 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 425 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 426 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 427 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 428 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s ok 1 - test passes: data is valid: true # 498s 1..1 498s } 498s ok 429 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 498s not ok 1 - evaluation result is incorrect # 498s # Failed test (with amnesty) 'evaluation result is incorrect' 498s # at t/zzz-acceptance-draft2020-12-format.t line 68. 498s # expected false; got true 498s # data: "\"http://example.com/dictionary/{term:1}/{term\"" 498s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"uri-template\"}" 498s # result: { 498s # "valid": true 498s # } 498s 1..1 498s } 498s ok 430 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 498s # result: { 498s # "valid": true 498s # } 498s # short-circuited result: { 498s # "valid": true 498s # } 499s ok 1 - test passes: data is valid: true # 499s 1..1 499s } 499s ok 431 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true # 499s 1..1 499s } 499s # 499s ok 432 - uri.json: "validation of URIs" - "all string formats ignore integers" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 433 - uri.json: "validation of URIs" - "all string formats ignore floats" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 434 - uri.json: "validation of URIs" - "all string formats ignore objects" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 435 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 436 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 437 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 438 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 439 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 440 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 441 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 442 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 443 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 444 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 445 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 446 - uri.json: "validation of URIs" - "a valid URL " { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 447 - uri.json: "validation of URIs" - "a valid mailto URI" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 448 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 449 - uri.json: "validation of URIs" - "a valid tel URI" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 450 - uri.json: "validation of URIs" - "a valid URN" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 451 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 452 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 453 - uri.json: "validation of URIs" - "an invalid URI" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 454 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 455 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 456 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uri", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 457 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s not ok 1 - evaluation result is incorrect # 499s # Failed test (with amnesty) 'evaluation result is incorrect' 499s # at t/zzz-acceptance-draft2020-12-format.t line 68. 499s # expected false; got true 499s # data: "\"bar,baz:foo\"" 499s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"uri\"}" 499s # result: { 499s # "valid": true 499s # } 499s 1..1 499s } 499s # 499s ok 458 - uuid.json: "uuid format" - "all string formats ignore integers" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 459 - uuid.json: "uuid format" - "all string formats ignore floats" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 460 - uuid.json: "uuid format" - "all string formats ignore objects" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 461 - uuid.json: "uuid format" - "all string formats ignore arrays" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 462 - uuid.json: "uuid format" - "all string formats ignore booleans" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 463 - uuid.json: "uuid format" - "all string formats ignore nulls" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 464 - uuid.json: "uuid format" - "all upper-case" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 465 - uuid.json: "uuid format" - "all lower-case" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 466 - uuid.json: "uuid format" - "mixed case" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 467 - uuid.json: "uuid format" - "all zeroes is valid" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 468 - uuid.json: "uuid format" - "wrong length" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 469 - uuid.json: "uuid format" - "missing section" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 470 - uuid.json: "uuid format" - "bad characters (not hex)" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 471 - uuid.json: "uuid format" - "no dashes" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 472 - uuid.json: "uuid format" - "too few dashes" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 473 - uuid.json: "uuid format" - "too many dashes" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 474 - uuid.json: "uuid format" - "dashes in the wrong spot" { 499s # result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s # short-circuited result: { 499s # "errors": [ 499s # { 499s # "error": "not a valid uuid", 499s # "instanceLocation": "", 499s # "keywordLocation": "/format" 499s # } 499s # ], 499s # "valid": false 499s # } 499s ok 1 - test passes: data is valid: false 499s 1..1 499s } 499s ok 475 - uuid.json: "uuid format" - "valid version 4" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 476 - uuid.json: "uuid format" - "valid version 5" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 477 - uuid.json: "uuid format" - "hypothetical version 6" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s ok 478 - uuid.json: "uuid format" - "hypothetical version 15" { 499s # result: { 499s # "valid": true 499s # } 499s # short-circuited result: { 499s # "valid": true 499s # } 499s ok 1 - test passes: data is valid: true 499s 1..1 499s } 499s # 499s # 499s # generated with: Test::JSON::Schema::Acceptance 1.026 499s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 499s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 499s # specification version: draft2020-12 499s # using custom test directory: /optional/format 499s # optional tests included: yes 499s # 499s # filename pass todo-fail fail 499s # --------------------------------------------------------------- 499s # date-time.json 25 0 0 499s # date.json 47 0 0 499s # duration.json 25 0 0 499s # email.json 20 2 0 499s # hostname.json 18 5 0 499s # idn-email.json 10 0 0 499s # idn-hostname.json 35 21 0 499s # ipv4.json 16 0 0 499s # ipv6.json 40 0 0 499s # iri-reference.json 11 2 0 499s # iri.json 14 1 0 499s # json-pointer.json 38 0 0 499s # regex.json 8 0 0 499s # relative-json-pointer.json 18 0 0 499s # time.json 45 0 0 499s # unknown.json 7 0 0 499s # uri-reference.json 13 0 0 499s # uri-template.json 9 1 0 499s # uri.json 25 1 0 499s # uuid.json 21 0 0 499s # --------------------------------------------------------------- 499s # TOTAL 445 33 0 499s # 499s # Congratulations, all non-optional tests are passing! 499s # 499s ok 479 - no leaks in the main evaluator object 499s ok 480 - no leaks in the short-circuiting evaluator object 499s 1..480 499s ok 509s t/zzz-acceptance-draft2020-12.t ......... 509s # AUTHOR_TESTING: 509s # AUTOMATED_TESTING: 1 509s # EXTENDED_TESTING: 509s # NO_TODO: 509s # TEST_DIR: 509s # NO_SHORT_CIRCUIT: 509s # 509s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 509s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft2020-12 against draft2020-12... 509s # 509s ok 1 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 2 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/quux", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/quux", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 3 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 4 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 5 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 6 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 7 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 8 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/élmény", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/élmény", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 9 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 10 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 11 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/quux", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/quux", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 12 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 13 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 14 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 15 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not boolean", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 16 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 17 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against both keywords" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 18 - additionalProperties.json: "additionalProperties with propertyNames" - "Valid against propertyNames, but not additionalProperties" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "/pear", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "/pear", 509s # "keywordLocation": "/additionalProperties/type" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 19 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties doesn't consider dependentSchemas" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 20 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 21 - additionalProperties.json: "dependentSchemas with additionalProperties" - "additionalProperties can't see bar even when foo2 is present" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 22 - allOf.json: "allOf" - "allOf" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 23 - allOf.json: "allOf" - "mismatch second" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 24 - allOf.json: "allOf" - "mismatch first" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/required" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/required" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 25 - allOf.json: "allOf" - "wrong type" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/allOf/0/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/properties" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/allOf/0/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/properties" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 26 - allOf.json: "allOf with base schema" - "valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 27 - allOf.json: "allOf with base schema" - "mismatch base schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/required" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/required" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 28 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 29 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: baz", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/required" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: baz", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/required" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 30 - allOf.json: "allOf with base schema" - "mismatch both" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "object is missing property: baz", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/required" 509s # }, 509s # { 509s # "error": "subschemas 0, 1 are not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/required" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 31 - allOf.json: "allOf simple types" - "valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 32 - allOf.json: "allOf simple types" - "mismatch one" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is greater than 30", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/maximum" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is greater than 30", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/maximum" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 33 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 34 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 35 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0" 509s # }, 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1" 509s # }, 509s # { 509s # "error": "subschemas 0, 1 are not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 36 - allOf.json: "allOf with one empty schema" - "any data is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 37 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 38 - allOf.json: "allOf with the first empty schema" - "number is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 39 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/type" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/1/type" 509s # }, 509s # { 509s # "error": "subschema 1 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 40 - allOf.json: "allOf with the last empty schema" - "number is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 41 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/type" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not number", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/type" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 42 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 43 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/allOf/0/type" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/allOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/allOf/0/type" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/allOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 44 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 5", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 45 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 46 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 5", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 47 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 48 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 5", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 49 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 50 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 5", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 5", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf/0/multipleOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/oneOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 51 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s # 509s ok 52 - anchor.json: "Location-independent identifier" - "match" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 53 - anchor.json: "Location-independent identifier" - "mismatch" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "#/$defs/A/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "#/$defs/A/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 54 - anchor.json: "Location-independent identifier with absolute URI" - "match" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 55 - anchor.json: "Location-independent identifier with absolute URI" - "mismatch" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/bar#/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 56 - anchor.json: "Location-independent identifier with base URI change in subschema" - "match" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 57 - anchor.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested.json#/$defs/B/type", 509s # "error": "got string, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 58 - anchor.json: "same $anchor with different base uri" - "$ref resolves to /$defs/A/allOf/1" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 59 - anchor.json: "same $anchor with different base uri" - "$ref does not resolve to /$defs/A/allOf/0" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/child1#/allOf/1/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 60 - anyOf.json: "anyOf" - "first anyOf valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 61 - anyOf.json: "anyOf" - "second anyOf valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 62 - anyOf.json: "anyOf" - "both anyOf valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 63 - anyOf.json: "anyOf" - "neither anyOf valid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got number, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/type" 509s # }, 509s # { 509s # "error": "value is less than 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/minimum" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got number, not integer", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/type" 509s # }, 509s # { 509s # "error": "value is less than 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/minimum" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 64 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not string", 509s # "instanceLocation": "", 509s # "keywordLocation": "/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not string", 509s # "instanceLocation": "", 509s # "keywordLocation": "/type" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 65 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 66 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "length is greater than 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/maxLength" 509s # }, 509s # { 509s # "error": "length is less than 4", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/minLength" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "length is greater than 2", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/maxLength" 509s # }, 509s # { 509s # "error": "length is less than 4", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/minLength" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 67 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 68 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 69 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0" 509s # }, 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0" 509s # }, 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 70 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 71 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 72 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 73 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/anyOf/0/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/properties" 509s # }, 509s # { 509s # "error": "got integer, not string", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/anyOf/1/properties/foo/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/properties" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/anyOf/0/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/properties" 509s # }, 509s # { 509s # "error": "got integer, not string", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/anyOf/1/properties/foo/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/1/properties" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 74 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 75 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 77 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/anyOf/0/type" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/anyOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/anyOf/0/type" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf/0/anyOf" 509s # }, 509s # { 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/anyOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 78 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 79 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 80 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 81 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 82 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 83 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 84 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 85 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 86 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 87 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 88 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 89 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 90 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 91 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 92 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 93 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 94 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 95 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 96 - const.json: "const validation" - "same value is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 97 - const.json: "const validation" - "another value is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 98 - const.json: "const validation" - "another type is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 99 - const.json: "const with object" - "same object is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 100 - const.json: "const with object" - "same object with different property order is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 101 - const.json: "const with object" - "another object is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 102 - const.json: "const with object" - "another type is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 103 - const.json: "const with array" - "same array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 104 - const.json: "const with array" - "another array item is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs object)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs object)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 105 - const.json: "const with array" - "array with additional items is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 106 - const.json: "const with null" - "null is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 107 - const.json: "const with null" - "not null is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 108 - const.json: "const with false does not match 0" - "false is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 109 - const.json: "const with false does not match 0" - "integer zero is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 110 - const.json: "const with false does not match 0" - "float zero is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 111 - const.json: "const with true does not match 1" - "true is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 112 - const.json: "const with true does not match 1" - "integer one is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 113 - const.json: "const with true does not match 1" - "float one is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 114 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 115 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 116 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 117 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 118 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 119 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 120 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 121 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 122 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 123 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 124 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 125 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 126 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 127 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 128 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 129 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 130 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 131 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 132 - const.json: "const with 1 does not match true" - "true is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 133 - const.json: "const with 1 does not match true" - "integer one is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 134 - const.json: "const with 1 does not match true" - "float one is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 135 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 136 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 137 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 138 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 139 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 140 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 141 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 142 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 143 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 144 - const.json: "nul characters in strings" - "match string with nul" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 145 - const.json: "nul characters in strings" - "do not match string lacking nul" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "", 509s # "keywordLocation": "/const" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 146 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 147 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 148 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 149 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "value is less than 5", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/minimum" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 150 - contains.json: "contains keyword validation" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 151 - contains.json: "contains keyword validation" - "not array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 152 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 153 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 154 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/3", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "value does not match", 509s # "instanceLocation": "/3", 509s # "keywordLocation": "/contains/const" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 155 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 156 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 157 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 158 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 159 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 160 - contains.json: "items + contains" - "matches items, does not match contains" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 161 - contains.json: "items + contains" - "does not match items, matches contains" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/2", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 162 - contains.json: "items + contains" - "matches both items and contains" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 163 - contains.json: "items + contains" - "matches neither items nor contains" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "value is not a multiple of 3", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/contains/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is not a multiple of 2", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/items/multipleOf" 509s # }, 509s # { 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 164 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 165 - contains.json: "contains with false if subschema" - "empty array is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is not valid against any item", 509s # "instanceLocation": "", 509s # "keywordLocation": "/contains" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 166 - contains.json: "contains with null instance elements" - "allows null items" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s # 509s ok 167 - content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 168 - content.json: "validation of string-encoded content based on media type" - "an invalid JSON document; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 169 - content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 170 - content.json: "validation of binary string-encoding" - "a valid base64 string" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 171 - content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character); validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 172 - content.json: "validation of binary string-encoding" - "ignores non-strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 173 - content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 174 - content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 175 - content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 176 - content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 177 - content.json: "validation of binary-encoded media type documents with schema" - "a valid base64-encoded JSON document" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 178 - content.json: "validation of binary-encoded media type documents with schema" - "another valid base64-encoded JSON document" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 179 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64-encoded JSON document; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 180 - content.json: "validation of binary-encoded media type documents with schema" - "an empty object as a base64-encoded JSON document; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 181 - content.json: "validation of binary-encoded media type documents with schema" - "an empty array as a base64-encoded JSON document" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 182 - content.json: "validation of binary-encoded media type documents with schema" - "a validly-encoded invalid JSON document; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 183 - content.json: "validation of binary-encoded media type documents with schema" - "an invalid base64 string that is valid JSON; validates true" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 184 - content.json: "validation of binary-encoded media type documents with schema" - "ignores non-strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s # 509s ok 185 - default.json: "invalid type for default" - "valid when property is specified" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 186 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 187 - default.json: "invalid string value for default" - "valid when property is specified" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 188 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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)" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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)" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "value is greater than 3", 509s # "instanceLocation": "/alpha", 509s # "keywordLocation": "/properties/alpha/maximum" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "value is greater than 3", 509s # "instanceLocation": "/alpha", 509s # "keywordLocation": "/properties/alpha/maximum" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s # 509s ok 192 - defs.json: "validate definition against metaschema" - "valid definition schema" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 193 - defs.json: "validate definition against metaschema" - "invalid definition schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 509s # "error": "value does not match", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 509s # "error": "got integer, not array", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/$defs/foo", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 509s # "error": "subschema 3 is not valid", 509s # "instanceLocation": "/$defs/foo", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "/$defs", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/simpleTypes/enum", 509s # "error": "value does not match", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/0/$ref/enum" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf/1/type", 509s # "error": "got integer, not array", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf/1/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties/type/anyOf", 509s # "error": "no subschemas are valid", 509s # "instanceLocation": "/$defs/foo/type", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties/type/anyOf" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/$defs/foo", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf/3/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 509s # "error": "subschema 3 is not valid", 509s # "instanceLocation": "/$defs/foo", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties/$dynamicRef/allOf" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties/$defs/additionalProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "/$defs", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties/$defs/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/core#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/allOf/0/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 194 - dependentRequired.json: "single dependency" - "neither" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 195 - dependentRequired.json: "single dependency" - "nondependant" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 196 - dependentRequired.json: "single dependency" - "with dependency" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 197 - dependentRequired.json: "single dependency" - "missing dependency" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 198 - dependentRequired.json: "single dependency" - "ignores arrays" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 199 - dependentRequired.json: "single dependency" - "ignores strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 200 - dependentRequired.json: "single dependency" - "ignores other non-objects" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 201 - dependentRequired.json: "empty dependents" - "empty object" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 202 - dependentRequired.json: "empty dependents" - "object with one property" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 203 - dependentRequired.json: "empty dependents" - "non-object is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 204 - dependentRequired.json: "multiple dependents required" - "neither" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 205 - dependentRequired.json: "multiple dependents required" - "nondependants" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 206 - dependentRequired.json: "multiple dependents required" - "with dependencies" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 207 - dependentRequired.json: "multiple dependents required" - "missing dependency" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 208 - dependentRequired.json: "multiple dependents required" - "missing other dependency" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 209 - dependentRequired.json: "multiple dependents required" - "missing both dependencies" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing properties: foo, bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing properties: foo, bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/quux" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 210 - dependentRequired.json: "dependencies with escaped characters" - "CRLF" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 211 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 212 - dependentRequired.json: "dependencies with escaped characters" - "CRLF missing dependent" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\rbar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/foo\nbar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\rbar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/foo\nbar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 213 - dependentRequired.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo'bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/foo\"bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo'bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired/foo\"bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentRequired" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s # 509s ok 214 - dependentSchemas.json: "single dependency" - "valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 215 - dependentSchemas.json: "single dependency" - "no dependency" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 216 - dependentSchemas.json: "single dependency" - "wrong type" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 217 - dependentSchemas.json: "single dependency" - "wrong type other" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 218 - dependentSchemas.json: "single dependency" - "wrong type both" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 509s # }, 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/bar/properties/foo/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "got string, not integer", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/dependentSchemas/bar/properties/bar/type" 509s # }, 509s # { 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar/properties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 219 - dependentSchemas.json: "single dependency" - "ignores arrays" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 220 - dependentSchemas.json: "single dependency" - "ignores strings" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 221 - dependentSchemas.json: "single dependency" - "ignores other non-objects" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 222 - dependentSchemas.json: "boolean subschemas" - "object with property having schema true is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 223 - dependentSchemas.json: "boolean subschemas" - "object with property having schema false is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 224 - dependentSchemas.json: "boolean subschemas" - "object with both properties is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "subschema is false", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/bar" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 225 - dependentSchemas.json: "boolean subschemas" - "empty object is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 226 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 227 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\"bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo'bar/required" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\"bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo'bar/required" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 228 - dependentSchemas.json: "dependencies with escaped characters" - "quoted tab invalid under dependent schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object has fewer than 4 properties", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object has fewer than 4 properties", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo\tbar/minProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 229 - dependentSchemas.json: "dependencies with escaped characters" - "quoted quote invalid under dependent schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\"bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo'bar/required" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "object is missing property: foo\"bar", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo'bar/required" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 230 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches root" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 231 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches dependency" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 232 - dependentSchemas.json: "dependent subschema incompatible with root" - "matches both" { 509s # result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/foo", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas/foo/additionalProperties" 509s # }, 509s # { 509s # "error": "not all dependencies are satisfied", 509s # "instanceLocation": "", 509s # "keywordLocation": "/dependentSchemas" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 233 - dependentSchemas.json: "dependent subschema incompatible with root" - "no dependency" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s # 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$ref/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/items/$ref/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/typical-dynamic-resolution/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 242 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of strings is invalid" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 509s # "error": "got string, not number", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 509s # "error": "got string, not number", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/$defs/items/type", 509s # "error": "got string, not number", 509s # "instanceLocation": "/0", 509s # "keywordLocation": "/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamicRef-without-anchor/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 243 - dynamicRef.json: "A $dynamicRef without anchor in fragment behaves identical to $ref" - "An array of numbers is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root#/$defs/foo/type", 509s # "error": "got integer, not string", 509s # "instanceLocation": "/1", 509s # "keywordLocation": "/$ref/$ref/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/list#/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/$ref/items" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 246 - dynamicRef.json: "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution" - "Any array is valid" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 509s # "error": "value does not match", 509s # "instanceLocation": "/bar/baz/foo", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/bar/baz", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties/foo/const", 509s # "error": "value does not match", 509s # "instanceLocation": "/bar/baz/foo", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties/foo/const" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/root#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/bar/baz", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties/baz/$dynamicRef/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/bar#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "/bar", 509s # "keywordLocation": "/$ref/properties/bar/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/relative-dynamic-reference/extended#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 252 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with number values" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 253 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "number list with string values" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 509s # "error": "got string, not number", 509s # "instanceLocation": "/list/0", 509s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/list", 509s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/numberList#/$defs/itemType/type", 509s # "error": "got string, not number", 509s # "instanceLocation": "/list/0", 509s # "keywordLocation": "/then/$ref/$ref/properties/list/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/list", 509s # "keywordLocation": "/then/$ref/$ref/properties/list/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 254 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with number values" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 509s # "error": "got number, not string", 509s # "instanceLocation": "/list/0", 509s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/list", 509s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/else/$ref/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/else" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/stringList#/$defs/itemType/type", 509s # "error": "got number, not string", 509s # "instanceLocation": "/list/0", 509s # "keywordLocation": "/else/$ref/$ref/properties/list/items/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties/list/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/list", 509s # "keywordLocation": "/else/$ref/$ref/properties/list/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/genericList#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/else/$ref/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main#/else", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/else" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 255 - dynamicRef.json: "multiple dynamic paths to the $dynamicRef keyword" - "string list with string values" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 509s # "error": "got string, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 509s # "error": "got string, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/second_scope#/$defs/thingy/type", 509s # "error": "got integer, not null", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then/$ref/$dynamicRef/type" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main#/then", 509s # "error": "subschema is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/then" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s 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" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 259 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with misspelled field" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/children/0/daat", 509s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "/children/0", 509s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/children", 509s # "keywordLocation": "/$ref/properties/children/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/children", 509s # "keywordLocation": "/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/unevaluatedProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/children/0/daat", 509s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "/children/0", 509s # "keywordLocation": "/$ref/properties/children/items/$dynamicRef/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties/children/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/children", 509s # "keywordLocation": "/$ref/properties/children/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree.json#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/children", 509s # "keywordLocation": "/unevaluatedProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-tree.json#/unevaluatedProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/unevaluatedProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 260 - dynamicRef.json: "strict-tree schema, guards against misspelled properties" - "instance with correct field" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 261 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect parent schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 509s # "error": "object is missing property: elements", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/required" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/a", 509s # "keywordLocation": "/$ref/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/additionalProperties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 509s # "error": "object is missing property: elements", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/required" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 262 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "incorrect extended schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 509s # "error": "object is missing property: a", 509s # "instanceLocation": "/elements/0", 509s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/elements/0/b", 509s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/additionalProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "/elements/0", 509s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/elements", 509s # "keywordLocation": "/$ref/properties/elements/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible.json#/$defs/elements/required", 509s # "error": "object is missing property: a", 509s # "instanceLocation": "/elements/0", 509s # "keywordLocation": "/$ref/properties/elements/items/$dynamicRef/required" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 509s # "error": "subschema is not valid against all items", 509s # "instanceLocation": "/elements", 509s # "keywordLocation": "/$ref/properties/elements/items" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 509s # "error": "not all properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/$ref/properties" 509s # } 509s # ], 509s # "valid": false 509s # } 509s ok 1 - test passes: data is valid: false 509s 1..1 509s } 509s ok 263 - dynamicRef.json: "tests for implementation dynamic anchor and reference link" - "correct extended schema" { 509s # result: { 509s # "valid": true 509s # } 509s # short-circuited result: { 509s # "valid": true 509s # } 509s ok 1 - test passes: data is valid: true 509s 1..1 509s } 509s ok 264 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect parent schema" { 509s # result: { 509s # "errors": [ 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 509s # "error": "object is missing property: elements", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/$ref/required" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 509s # "error": "additional property not permitted", 509s # "instanceLocation": "/a", 509s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 509s # "error": "not all additional properties are valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf/0/$ref/additionalProperties" 509s # }, 509s # { 509s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 509s # "error": "subschema 0 is not valid", 509s # "instanceLocation": "", 509s # "keywordLocation": "/allOf" 509s # } 509s # ], 509s # "valid": false 509s # } 509s # short-circuited result: { 509s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 510s # "error": "object is missing property: elements", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 265 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "incorrect extended schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 510s # "error": "object is missing property: a", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/elements/0/b", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/additionalProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/elements", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf/1/$defs/elements/required", 510s # "error": "object is missing property: a", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items/$dynamicRef/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/elements", 510s # "keywordLocation": "/allOf/0/$ref/properties/elements/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json#/allOf", 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 266 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $defs first" - "correct extended schema" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 267 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect parent schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 510s # "error": "object is missing property: elements", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/$ref/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/a", 510s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/additionalProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/$ref/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/required", 510s # "error": "object is missing property: elements", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/$ref/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 268 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "incorrect extended schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 510s # "error": "object is missing property: a", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/elements/0/b", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/additionalProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/elements", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf/0/$defs/elements/required", 510s # "error": "object is missing property: a", 510s # "instanceLocation": "/elements/0", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items/$dynamicRef/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties/elements/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/elements", 510s # "keywordLocation": "/allOf/1/$ref/properties/elements/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json#/allOf", 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 269 - dynamicRef.json: "$ref and $dynamicAnchor are independent of order - $ref first" - "correct extended schema" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 270 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 271 - dynamicRef.json: "$ref to $dynamicRef finds detached $dynamicAnchor" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$dynamicRef/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/detached/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$dynamicRef/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 272 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a true schema" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 273 - dynamicRef.json: "$dynamicRef points to a boolean schema" - "follow $dynamicRef to a false schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/false", 510s # "error": "subschema is false", 510s # "instanceLocation": "/false", 510s # "keywordLocation": "/properties/false/$dynamicRef" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/false", 510s # "error": "subschema is false", 510s # "instanceLocation": "/false", 510s # "keywordLocation": "/properties/false/$dynamicRef" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 274 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "integer property passes" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 275 - dynamicRef.json: "$dynamicRef skips over intermediate resources - direct reference" - "string property fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar-item/content", 510s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/bar-item", 510s # "keywordLocation": "/properties/bar-item/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/$defs/defaultContent/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar-item/content", 510s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/item#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/bar-item", 510s # "keywordLocation": "/properties/bar-item/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 276 - enum.json: "simple enum validation" - "one of the enum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 277 - enum.json: "simple enum validation" - "something else is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 278 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 279 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 280 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 510s # result: { 510s # "errors": [ 510s # { 510s # "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)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "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)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 281 - enum.json: "heterogeneous enum validation" - "valid object matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 282 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 283 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 284 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 285 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 286 - enum.json: "enums in properties" - "both properties are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 287 - enum.json: "enums in properties" - "wrong foo value" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/enum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/enum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 288 - enum.json: "enums in properties" - "wrong bar value" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/enum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/enum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 289 - enum.json: "enums in properties" - "missing optional property is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 290 - enum.json: "enums in properties" - "missing required property is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 291 - enum.json: "enums in properties" - "missing all properties is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 292 - enum.json: "enum with escaped characters" - "member 1 is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 293 - enum.json: "enum with escaped characters" - "member 2 is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 294 - enum.json: "enum with escaped characters" - "another string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 295 - enum.json: "enum with false does not match 0" - "false is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 296 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 297 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 298 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 299 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 300 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 301 - enum.json: "enum with true does not match 1" - "true is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 302 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 303 - enum.json: "enum with true does not match 1" - "float one is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 304 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 305 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 306 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 307 - enum.json: "enum with 0 does not match false" - "false is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 308 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 309 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 310 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 311 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 312 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 313 - enum.json: "enum with 1 does not match true" - "true is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 314 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 315 - enum.json: "enum with 1 does not match true" - "float one is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 316 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 317 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 318 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 319 - enum.json: "nul characters in strings" - "match string with nul" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 320 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 321 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 322 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 323 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 324 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 325 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 326 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 327 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 328 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 329 - format.json: "email format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 330 - format.json: "email format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 331 - format.json: "email format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 332 - format.json: "email format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 333 - format.json: "email format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 334 - format.json: "email format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 335 - format.json: "email format" - "invalid email string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 336 - format.json: "idn-email format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 337 - format.json: "idn-email format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 338 - format.json: "idn-email format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 339 - format.json: "idn-email format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 340 - format.json: "idn-email format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 341 - format.json: "idn-email format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 342 - format.json: "idn-email format" - "invalid idn-email string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 343 - format.json: "regex format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 344 - format.json: "regex format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 345 - format.json: "regex format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 346 - format.json: "regex format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 347 - format.json: "regex format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 348 - format.json: "regex format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 349 - format.json: "regex format" - "invalid regex string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 350 - format.json: "ipv4 format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 351 - format.json: "ipv4 format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 352 - format.json: "ipv4 format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 353 - format.json: "ipv4 format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 354 - format.json: "ipv4 format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 355 - format.json: "ipv4 format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 356 - format.json: "ipv4 format" - "invalid ipv4 string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 357 - format.json: "ipv6 format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 358 - format.json: "ipv6 format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 359 - format.json: "ipv6 format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 360 - format.json: "ipv6 format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 361 - format.json: "ipv6 format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 362 - format.json: "ipv6 format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 363 - format.json: "ipv6 format" - "invalid ipv6 string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 364 - format.json: "idn-hostname format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 365 - format.json: "idn-hostname format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 366 - format.json: "idn-hostname format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 367 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 368 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 369 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 370 - format.json: "idn-hostname format" - "invalid idn-hostname string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 371 - format.json: "hostname format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 372 - format.json: "hostname format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 373 - format.json: "hostname format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 374 - format.json: "hostname format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 375 - format.json: "hostname format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 376 - format.json: "hostname format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 377 - format.json: "hostname format" - "invalid hostname string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 378 - format.json: "date format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 379 - format.json: "date format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 380 - format.json: "date format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 381 - format.json: "date format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 382 - format.json: "date format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 383 - format.json: "date format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 384 - format.json: "date format" - "invalid date string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 385 - format.json: "date-time format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 386 - format.json: "date-time format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 387 - format.json: "date-time format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 388 - format.json: "date-time format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 389 - format.json: "date-time format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 390 - format.json: "date-time format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 391 - format.json: "date-time format" - "invalid date-time string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 392 - format.json: "time format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 393 - format.json: "time format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 394 - format.json: "time format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 395 - format.json: "time format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 396 - format.json: "time format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 397 - format.json: "time format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 398 - format.json: "time format" - "invalid time string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 399 - format.json: "json-pointer format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 400 - format.json: "json-pointer format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 401 - format.json: "json-pointer format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 402 - format.json: "json-pointer format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 403 - format.json: "json-pointer format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 404 - format.json: "json-pointer format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 405 - format.json: "json-pointer format" - "invalid json-pointer string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 406 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 407 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 408 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 409 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 410 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 411 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 412 - format.json: "relative-json-pointer format" - "invalid relative-json-pointer string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 413 - format.json: "iri format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 414 - format.json: "iri format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 415 - format.json: "iri format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 416 - format.json: "iri format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 417 - format.json: "iri format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 418 - format.json: "iri format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 419 - format.json: "iri format" - "invalid iri string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 420 - format.json: "iri-reference format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 421 - format.json: "iri-reference format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 422 - format.json: "iri-reference format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 423 - format.json: "iri-reference format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 424 - format.json: "iri-reference format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 425 - format.json: "iri-reference format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 426 - format.json: "iri-reference format" - "invalid iri-reference string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 427 - format.json: "uri format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 428 - format.json: "uri format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 429 - format.json: "uri format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 430 - format.json: "uri format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 431 - format.json: "uri format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 432 - format.json: "uri format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 433 - format.json: "uri format" - "invalid uri string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 434 - format.json: "uri-reference format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 435 - format.json: "uri-reference format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 436 - format.json: "uri-reference format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 437 - format.json: "uri-reference format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 438 - format.json: "uri-reference format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 439 - format.json: "uri-reference format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 440 - format.json: "uri-reference format" - "invalid uri-reference string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 441 - format.json: "uri-template format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 442 - format.json: "uri-template format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 443 - format.json: "uri-template format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 444 - format.json: "uri-template format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 445 - format.json: "uri-template format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 446 - format.json: "uri-template format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 447 - format.json: "uri-template format" - "invalid uri-template string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 448 - format.json: "uuid format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 449 - format.json: "uuid format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 450 - format.json: "uuid format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 451 - format.json: "uuid format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 452 - format.json: "uuid format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 453 - format.json: "uuid format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 454 - format.json: "uuid format" - "invalid uuid string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 455 - format.json: "duration format" - "all string formats ignore integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 456 - format.json: "duration format" - "all string formats ignore floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 457 - format.json: "duration format" - "all string formats ignore objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 458 - format.json: "duration format" - "all string formats ignore arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 459 - format.json: "duration format" - "all string formats ignore booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 460 - format.json: "duration format" - "all string formats ignore nulls" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 461 - format.json: "duration format" - "invalid duration string is only an annotation by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 462 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 463 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 464 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 465 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 466 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 467 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 468 - if-then-else.json: "if and then without else" - "valid through then" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 469 - if-then-else.json: "if and then without else" - "invalid through then" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 470 - if-then-else.json: "if and then without else" - "valid when if test fails" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 471 - if-then-else.json: "if and else without then" - "valid when if test passes" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 472 - if-then-else.json: "if and else without then" - "valid through else" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 473 - if-then-else.json: "if and else without then" - "invalid through else" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 474 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 475 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 476 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 477 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 478 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 479 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 480 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 481 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 482 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 483 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 484 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 485 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 486 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/then" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 487 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else/const" 510s # }, 510s # { 510s # "error": "subschema is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/else" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s 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" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s 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" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/int/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/int/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/additionalProperties" 510s # }, 510s # { 510s # "error": "subschemas 0, 1 are not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/int/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/properties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 490 - items.json: "a schema given for items" - "valid items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 491 - items.json: "a schema given for items" - "wrong type of items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 492 - items.json: "a schema given for items" - "ignores non-arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 493 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 494 - items.json: "items with boolean schema (true)" - "any array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 495 - items.json: "items with boolean schema (true)" - "empty array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 496 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 497 - items.json: "items with boolean schema (false)" - "empty array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 498 - items.json: "items and subitems" - "valid items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 499 - items.json: "items and subitems" - "too many items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 500 - items.json: "items and subitems" - "too many sub-items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/items", 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0/2", 510s # "keywordLocation": "/prefixItems/0/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/items" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/items", 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0/2", 510s # "keywordLocation": "/prefixItems/0/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/items" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 501 - items.json: "items and subitems" - "wrong item" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/type", 510s # "error": "got object, not array", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/type", 510s # "error": "got object, not array", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 502 - items.json: "items and subitems" - "wrong sub-item" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 510s # "error": "not all items are valid", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/sub-item/required", 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/prefixItems/0/$ref/prefixItems/0/$ref/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/item/prefixItems", 510s # "error": "not all items are valid", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/$ref/prefixItems" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 503 - items.json: "items and subitems" - "fewer items is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 504 - items.json: "nested items" - "valid nested array" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 505 - items.json: "nested items" - "nested array with invalid type" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/0/0/0/0", 510s # "keywordLocation": "/items/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0/0", 510s # "keywordLocation": "/items/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/0/0/0/0", 510s # "keywordLocation": "/items/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0/0", 510s # "keywordLocation": "/items/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 506 - items.json: "nested items" - "not deep enough" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/0/0/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/0/1/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/1", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/0/2/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/2", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/1/0/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/1/0", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/1/1/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/1/1", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/1/2/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/1/2", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "/0/0/0", 510s # "keywordLocation": "/items/items/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 507 - items.json: "prefixItems with no additional items allowed" - "empty array" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 508 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (1)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 509 - items.json: "prefixItems with no additional items allowed" - "fewer number of items present (2)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 510 - items.json: "prefixItems with no additional items allowed" - "equal number of items present" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 511 - items.json: "prefixItems with no additional items allowed" - "additional items are not permitted" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 512 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, invalid case" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than 5", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than 5", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/minimum" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 513 - items.json: "items does not look in applicators, valid case" - "prefixItems in allOf does not constrain items, valid case" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 514 - items.json: "prefixItems validation adjusts the starting index for items" - "valid items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 515 - items.json: "prefixItems validation adjusts the starting index for items" - "wrong type of second item" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 516 - items.json: "items with heterogeneous array" - "heterogeneous invalid instance" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 517 - items.json: "items with heterogeneous array" - "valid instance" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 518 - items.json: "items with null instance elements" - "allows null elements" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 519 - maxContains.json: "maxContains without contains is ignored" - "one item valid against lone maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 520 - maxContains.json: "maxContains without contains is ignored" - "two items still valid against lone maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 521 - maxContains.json: "maxContains with contains" - "empty data" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 522 - maxContains.json: "maxContains with contains" - "all elements match, valid maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 523 - maxContains.json: "maxContains with contains" - "all elements match, invalid maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 524 - maxContains.json: "maxContains with contains" - "some elements match, valid maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 525 - maxContains.json: "maxContains with contains" - "some elements match, invalid maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 526 - maxContains.json: "maxContains with contains, value with a decimal" - "one element matches, valid maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 527 - maxContains.json: "maxContains with contains, value with a decimal" - "too many elements match, invalid maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 528 - maxContains.json: "minContains < maxContains" - "actual < minContains < maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 529 - maxContains.json: "minContains < maxContains" - "minContains < actual < maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 530 - maxContains.json: "minContains < maxContains" - "minContains < maxContains < actual" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 531 - maxItems.json: "maxItems validation" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 532 - maxItems.json: "maxItems validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 533 - maxItems.json: "maxItems validation" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 534 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 535 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 536 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 537 - maxLength.json: "maxLength validation" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 538 - maxLength.json: "maxLength validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 539 - maxLength.json: "maxLength validation" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 540 - maxLength.json: "maxLength validation" - "ignores non-strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 541 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 542 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 543 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 544 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 545 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 546 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 2 properties", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 2 properties", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 547 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 548 - maxProperties.json: "maxProperties validation" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 549 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 550 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 551 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 2 properties", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 2 properties", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 552 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 553 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 0 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object has more than 0 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 554 - maximum.json: "maximum validation" - "below the maximum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 555 - maximum.json: "maximum validation" - "boundary point is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 556 - maximum.json: "maximum validation" - "above the maximum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 3", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 557 - maximum.json: "maximum validation" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 558 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 559 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 560 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 561 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 300", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 300", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 562 - minContains.json: "minContains without contains is ignored" - "one item valid against lone minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 563 - minContains.json: "minContains without contains is ignored" - "zero items still valid against lone minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 564 - minContains.json: "minContains=1 with contains" - "empty data" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 565 - minContains.json: "minContains=1 with contains" - "no elements match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/contains/const" 510s # }, 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/contains/const" 510s # }, 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 566 - minContains.json: "minContains=1 with contains" - "single element matches, valid minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 567 - minContains.json: "minContains=1 with contains" - "some elements match, valid minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 568 - minContains.json: "minContains=1 with contains" - "all elements match, valid minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 569 - minContains.json: "minContains=2 with contains" - "empty data" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 570 - minContains.json: "minContains=2 with contains" - "all elements match, invalid minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 571 - minContains.json: "minContains=2 with contains" - "some elements match, invalid minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 572 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (exactly as needed)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 573 - minContains.json: "minContains=2 with contains" - "all elements match, valid minContains (more than needed)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 574 - minContains.json: "minContains=2 with contains" - "some elements match, valid minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 575 - minContains.json: "minContains=2 with contains with a decimal value" - "one element matches, invalid minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 576 - minContains.json: "minContains=2 with contains with a decimal value" - "both elements match, valid minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 577 - minContains.json: "maxContains = minContains" - "empty data" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 578 - minContains.json: "maxContains = minContains" - "all elements match, invalid minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 579 - minContains.json: "maxContains = minContains" - "all elements match, invalid maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 2 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 580 - minContains.json: "maxContains = minContains" - "all elements match, valid maxContains and minContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 581 - minContains.json: "maxContains < minContains" - "empty data" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "array contains fewer than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 582 - minContains.json: "maxContains < minContains" - "invalid minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains fewer than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 583 - minContains.json: "maxContains < minContains" - "invalid maxContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 584 - minContains.json: "maxContains < minContains" - "invalid maxContains and minContains" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # }, 510s # { 510s # "error": "array contains fewer than 3 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 585 - minContains.json: "minContains = 0" - "empty data" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 586 - minContains.json: "minContains = 0" - "minContains = 0 makes contains always pass" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 587 - minContains.json: "minContains = 0 with maxContains" - "empty data" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 588 - minContains.json: "minContains = 0 with maxContains" - "not more than maxContains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 589 - minContains.json: "minContains = 0 with maxContains" - "too many" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array contains more than 1 matching items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/maxContains" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 590 - minItems.json: "minItems validation" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 591 - minItems.json: "minItems validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 592 - minItems.json: "minItems validation" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 1 item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 1 item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 593 - minItems.json: "minItems validation" - "ignores non-arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 594 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 595 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 1 item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 1 item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 596 - minLength.json: "minLength validation" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 597 - minLength.json: "minLength validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 598 - minLength.json: "minLength validation" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 599 - minLength.json: "minLength validation" - "ignores non-strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 600 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 601 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 602 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 603 - minProperties.json: "minProperties validation" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 604 - minProperties.json: "minProperties validation" - "exact length is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 605 - minProperties.json: "minProperties validation" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object has fewer than 1 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object has fewer than 1 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 606 - minProperties.json: "minProperties validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 607 - minProperties.json: "minProperties validation" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 608 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 609 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 610 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object has fewer than 1 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object has fewer than 1 property", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 611 - minimum.json: "minimum validation" - "above the minimum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 612 - minimum.json: "minimum validation" - "boundary point is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 613 - minimum.json: "minimum validation" - "below the minimum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than 1.1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 614 - minimum.json: "minimum validation" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 615 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 616 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 617 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 618 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 619 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 620 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than -2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 621 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 622 - multipleOf.json: "by int" - "int by int" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 623 - multipleOf.json: "by int" - "int by int fail" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 624 - multipleOf.json: "by int" - "ignores non-numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 625 - multipleOf.json: "by number" - "zero is multiple of anything" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 626 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 627 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 1.5", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 1.5", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 628 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 629 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 0.0001", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 0.0001", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 630 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 0.123456789", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 0.123456789", 510s # "instanceLocation": "", 510s # "keywordLocation": "/multipleOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 631 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 632 - not.json: "not" - "allowed" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 633 - not.json: "not" - "disallowed" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 634 - not.json: "not multiple types" - "valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 635 - not.json: "not multiple types" - "mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 636 - not.json: "not multiple types" - "other mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 637 - not.json: "not more complex schema" - "match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 638 - not.json: "not more complex schema" - "other match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 639 - not.json: "not more complex schema" - "mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 640 - not.json: "forbidden property" - "property present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/not" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/not" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 641 - not.json: "forbidden property" - "property absent" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 642 - not.json: "forbid everything with empty schema" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 643 - not.json: "forbid everything with empty schema" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 644 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 645 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 646 - not.json: "forbid everything with empty schema" - "null is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 647 - not.json: "forbid everything with empty schema" - "object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 648 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 649 - not.json: "forbid everything with empty schema" - "array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 650 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 651 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 652 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 653 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 654 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 655 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 656 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 657 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 658 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 659 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 660 - not.json: "allow everything with boolean schema false" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 661 - not.json: "allow everything with boolean schema false" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 662 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 663 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 664 - not.json: "allow everything with boolean schema false" - "null is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 665 - not.json: "allow everything with boolean schema false" - "object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 666 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 667 - not.json: "allow everything with boolean schema false" - "array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 668 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 669 - not.json: "double negation" - "any value is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 670 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "unevaluated property" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 671 - not.json: "collect annotations inside a 'not', even if collection is disabled" - "annotations are still collected inside a 'not'" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/not" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 672 - oneOf.json: "oneOf" - "first oneOf valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 673 - oneOf.json: "oneOf" - "second oneOf valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 674 - oneOf.json: "oneOf" - "both oneOf valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 675 - oneOf.json: "oneOf" - "neither oneOf valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/type" 510s # }, 510s # { 510s # "error": "value is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/minimum" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/type" 510s # }, 510s # { 510s # "error": "value is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/minimum" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 676 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # }, 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 677 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 678 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 679 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 680 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 681 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 682 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0" 510s # }, 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1" 510s # }, 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/2" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0" 510s # }, 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1" 510s # }, 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/2" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 683 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 684 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 685 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 686 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/oneOf/0/properties/bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/properties" 510s # }, 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/oneOf/1/properties/foo/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/properties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/oneOf/0/properties/bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/properties" 510s # }, 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/oneOf/1/properties/foo/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/properties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 687 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 688 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 689 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/required" 510s # }, 510s # { 510s # "error": "object is missing properties: foo, baz", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/required" 510s # }, 510s # { 510s # "error": "object is missing properties: foo, baz", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 690 - oneOf.json: "oneOf with required" - "first valid - valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 691 - oneOf.json: "oneOf with required" - "second valid - valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 692 - oneOf.json: "oneOf with required" - "both valid - invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 693 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 694 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 695 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 696 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/required" 510s # }, 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: bar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/required" 510s # }, 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 697 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 698 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/oneOf/0/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/oneOf" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/oneOf/0/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/oneOf" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 699 - pattern.json: "pattern validation" - "a matching pattern is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 700 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 701 - pattern.json: "pattern validation" - "ignores booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 702 - pattern.json: "pattern validation" - "ignores integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 703 - pattern.json: "pattern validation" - "ignores floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 704 - pattern.json: "pattern validation" - "ignores objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 705 - pattern.json: "pattern validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 706 - pattern.json: "pattern validation" - "ignores null" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 707 - pattern.json: "pattern is not anchored" - "matches a substring" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 708 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 709 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 710 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.*o/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.*o/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 711 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.*o/type" 510s # }, 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foooooo", 510s # "keywordLocation": "/patternProperties/f.*o/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.*o/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 712 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 713 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 714 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 715 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 716 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 717 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 718 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/a", 510s # "keywordLocation": "/patternProperties/a*/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/a", 510s # "keywordLocation": "/patternProperties/a*/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 719 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 20", 510s # "instanceLocation": "/aaaa", 510s # "keywordLocation": "/patternProperties/aaa*/maximum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than 20", 510s # "instanceLocation": "/aaaa", 510s # "keywordLocation": "/patternProperties/aaa*/maximum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 720 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/aaa", 510s # "keywordLocation": "/patternProperties/a*/type" 510s # }, 510s # { 510s # "error": "value is greater than 20", 510s # "instanceLocation": "/aaaa", 510s # "keywordLocation": "/patternProperties/aaa*/maximum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/aaa", 510s # "keywordLocation": "/patternProperties/a*/type" 510s # }, 510s # { 510s # "error": "value is greater than 20", 510s # "instanceLocation": "/aaaa", 510s # "keywordLocation": "/patternProperties/aaa*/maximum" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 721 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 722 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not boolean", 510s # "instanceLocation": "/a31b", 510s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not boolean", 510s # "instanceLocation": "/a31b", 510s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 723 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 724 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/a_X_3", 510s # "keywordLocation": "/patternProperties/X_/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/a_X_3", 510s # "keywordLocation": "/patternProperties/X_/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 725 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 726 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 727 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 728 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/foobar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/foobar", 510s # "keywordLocation": "/patternProperties/b.*" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 729 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 730 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 731 - prefixItems.json: "a schema given for prefixItems" - "correct types" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 732 - prefixItems.json: "a schema given for prefixItems" - "wrong types" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/type" 510s # }, 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/prefixItems/1/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/prefixItems/0/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 733 - prefixItems.json: "a schema given for prefixItems" - "incomplete array of items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 734 - prefixItems.json: "a schema given for prefixItems" - "array with additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 735 - prefixItems.json: "a schema given for prefixItems" - "empty array" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 736 - prefixItems.json: "a schema given for prefixItems" - "JavaScript pseudo-array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 737 - prefixItems.json: "prefixItems with boolean schemas" - "array with one item is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 738 - prefixItems.json: "prefixItems with boolean schemas" - "array with two items is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/prefixItems/1" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/prefixItems/1" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 739 - prefixItems.json: "prefixItems with boolean schemas" - "empty array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 740 - prefixItems.json: "additional items are allowed by default" - "only the first item is validated" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 741 - prefixItems.json: "prefixItems with null instance elements" - "allows null elements" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 742 - properties.json: "object properties validation" - "both properties present and valid is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 743 - properties.json: "object properties validation" - "one property invalid is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 744 - properties.json: "object properties validation" - "both properties invalid is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/type" 510s # }, 510s # { 510s # "error": "got array, not integer", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 745 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 746 - properties.json: "object properties validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 747 - properties.json: "object properties validation" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 748 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 749 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 3 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/maxItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 3 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/maxItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 750 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 2 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.o/minItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 2 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/patternProperties/f.o/minItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 751 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 752 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 2 items", 510s # "instanceLocation": "/fxo", 510s # "keywordLocation": "/patternProperties/f.o/minItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has fewer than 2 items", 510s # "instanceLocation": "/fxo", 510s # "keywordLocation": "/patternProperties/f.o/minItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 753 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 754 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 755 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/additionalProperties/type" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/additionalProperties/type" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 756 - properties.json: "properties with boolean schema" - "no property present is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 757 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 758 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 759 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 760 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 761 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\tbar", 510s # "keywordLocation": "/properties/foo\tbar/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\nbar", 510s # "keywordLocation": "/properties/foo\nbar/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\fbar", 510s # "keywordLocation": "/properties/foo\fbar/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\rbar", 510s # "keywordLocation": "/properties/foo\rbar/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\"bar", 510s # "keywordLocation": "/properties/foo\"bar/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\\bar", 510s # "keywordLocation": "/properties/foo\\bar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\tbar", 510s # "keywordLocation": "/properties/foo\tbar/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 762 - properties.json: "properties with null valued instance properties" - "allows null values" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 763 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 764 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 765 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 766 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/__proto__", 510s # "keywordLocation": "/properties/__proto__/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/__proto__", 510s # "keywordLocation": "/properties/__proto__/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 767 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/toString/length", 510s # "keywordLocation": "/properties/toString/properties/length/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/toString", 510s # "keywordLocation": "/properties/toString/properties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/toString/length", 510s # "keywordLocation": "/properties/toString/properties/length/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/toString", 510s # "keywordLocation": "/properties/toString/properties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 768 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not number", 510s # "instanceLocation": "/constructor", 510s # "keywordLocation": "/properties/constructor/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not number", 510s # "instanceLocation": "/constructor", 510s # "keywordLocation": "/properties/constructor/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 769 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 770 - propertyNames.json: "propertyNames validation" - "all property names valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 771 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 3", 510s # "instanceLocation": "/foobar", 510s # "keywordLocation": "/propertyNames/maxLength" 510s # }, 510s # { 510s # "error": "not all property names are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/propertyNames" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is greater than 3", 510s # "instanceLocation": "/foobar", 510s # "keywordLocation": "/propertyNames/maxLength" 510s # }, 510s # { 510s # "error": "not all property names are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/propertyNames" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 772 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 773 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 774 - propertyNames.json: "propertyNames validation" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 775 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 776 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 777 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 778 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/propertyNames" 510s # }, 510s # { 510s # "error": "not all property names are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/propertyNames" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "subschema is false", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/propertyNames" 510s # }, 510s # { 510s # "error": "not all property names are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/propertyNames" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 779 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 780 - ref.json: "root pointer ref" - "match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 781 - ref.json: "root pointer ref" - "recursive match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 782 - ref.json: "root pointer ref" - "mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 783 - ref.json: "root pointer ref" - "recursive mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/additionalProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/additionalProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/additionalProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/additionalProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 784 - ref.json: "relative pointer ref to object" - "match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 785 - ref.json: "relative pointer ref to object" - "mismatch" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/properties/foo/type", 510s # "error": "got boolean, not integer", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/properties/foo/type", 510s # "error": "got boolean, not integer", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 786 - ref.json: "relative pointer ref to array" - "match array" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 787 - ref.json: "relative pointer ref to array" - "mismatch array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/prefixItems/0/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/prefixItems/1/$ref/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/prefixItems/0/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/prefixItems/1/$ref/type" 510s # }, 510s # { 510s # "error": "not all items are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/prefixItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 788 - ref.json: "escaped pointer ref" - "slash invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/slash", 510s # "keywordLocation": "/properties/slash/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/slash~1field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/slash", 510s # "keywordLocation": "/properties/slash/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 789 - ref.json: "escaped pointer ref" - "tilde invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/tilde", 510s # "keywordLocation": "/properties/tilde/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/tilde~0field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/tilde", 510s # "keywordLocation": "/properties/tilde/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 790 - ref.json: "escaped pointer ref" - "percent invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/percent", 510s # "keywordLocation": "/properties/percent/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/percent%25field/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/percent", 510s # "keywordLocation": "/properties/percent/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 791 - ref.json: "escaped pointer ref" - "slash valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 792 - ref.json: "escaped pointer ref" - "tilde valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 793 - ref.json: "escaped pointer ref" - "percent valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 794 - ref.json: "nested refs" - "nested ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 795 - ref.json: "nested refs" - "nested ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/a/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/a/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 796 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 797 - ref.json: "ref applies alongside sibling keywords" - "ref valid, maxItems invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/maxItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "array has more than 2 items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/maxItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 798 - ref.json: "ref applies alongside sibling keywords" - "ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/reffed/type", 510s # "error": "got string, not array", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/reffed/type", 510s # "error": "got string, not array", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 799 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 800 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 510s # "error": "value is less than 0", 510s # "instanceLocation": "/minLength", 510s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 510s # "error": "subschema 3 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/$defs/nonNegativeInteger/minimum", 510s # "error": "value is less than 0", 510s # "instanceLocation": "/minLength", 510s # "keywordLocation": "/$ref/allOf/3/$ref/properties/minLength/$ref/$ref/minimum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/meta/validation#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/allOf/3/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://json-schema.org/draft/2020-12/schema#/allOf", 510s # "error": "subschema 3 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 801 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 802 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/$ref", 510s # "keywordLocation": "/properties/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/$ref", 510s # "keywordLocation": "/properties/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 803 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 804 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/is-string/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/$ref", 510s # "keywordLocation": "/properties/$ref/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/is-string/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/$ref", 510s # "keywordLocation": "/properties/$ref/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 805 - ref.json: "$ref to boolean schema true" - "any value is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 806 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/bool", 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/bool", 510s # "error": "subschema is false", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 807 - ref.json: "Recursive references between schemas" - "valid tree" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 808 - ref.json: "Recursive references between schemas" - "invalid tree" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0/subtree/nodes/0", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/nodes/0/subtree/nodes", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0/subtree", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/nodes", 510s # "keywordLocation": "/properties/nodes/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties/value/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0/subtree/nodes/0", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/nodes/0/subtree/nodes", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0/subtree", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/node#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/nodes/0", 510s # "keywordLocation": "/properties/nodes/items/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties/nodes/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/nodes", 510s # "keywordLocation": "/properties/nodes/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/tree#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 809 - ref.json: "refs with quote" - "object with numbers is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 810 - ref.json: "refs with quote" - "object with strings is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\"bar", 510s # "keywordLocation": "/properties/foo\"bar/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/foo%22bar/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "/foo\"bar", 510s # "keywordLocation": "/properties/foo\"bar/$ref/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 811 - ref.json: "ref creates new scope when adjacent to keywords" - "referenced subschema doesn't see annotations from properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/prop1", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/prop1", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/A/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 812 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 813 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/enum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 814 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 815 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 816 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 817 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 818 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo/bar", 510s # "keywordLocation": "/properties/foo/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 819 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 820 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 821 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 822 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 823 - ref.json: "order of evaluation: $id and $ref" - "data is valid against first definition" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 824 - ref.json: "order of evaluation: $id and $ref" - "data is invalid against first definition" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 510s # "error": "value is greater than 10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id1/int.json#/maximum", 510s # "error": "value is greater than 10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 825 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is valid against first definition" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 826 - ref.json: "order of evaluation: $id and $anchor and $ref" - "data is invalid against first definition" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 510s # "error": "value is greater than 10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/draft2020-12/ref-and-id2/base.json#/$defs/bigint/maximum", 510s # "error": "value is greater than 10", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/maximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 827 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 828 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 510s # "error": "value is less than 30", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/minimum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 510s # "error": "value is less than 30", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/minimum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 829 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 830 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 831 - ref.json: "URN base URI with NSS" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 832 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 833 - ref.json: "URN base URI with r-component" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 834 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 835 - ref.json: "URN base URI with q-component" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 836 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 837 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 838 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 839 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 840 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 841 - ref.json: "URN ref with nested pointer ref" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 842 - ref.json: "URN ref with nested pointer ref" - "a non-string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 843 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 844 - ref.json: "ref to if" - "an integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 845 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 846 - ref.json: "ref to then" - "an integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 847 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 848 - ref.json: "ref to else" - "an integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 849 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 850 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 851 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 852 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "file:///folder/file.json#/$defs/foo/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 853 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 854 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/$defs/foo/type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 855 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 856 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs//$defs//type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/type" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs//$defs//type", 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/$ref/type" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 857 - refRemote.json: "remote ref" - "remote ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 858 - refRemote.json: "remote ref" - "remote ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 859 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 860 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 861 - refRemote.json: "anchor within remote ref" - "remote anchor valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 862 - refRemote.json: "anchor within remote ref" - "remote anchor invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 863 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 864 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 865 - refRemote.json: "base URI change" - "base URI change ref valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 866 - refRemote.json: "base URI change" - "base URI change ref invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/0/0", 510s # "keywordLocation": "/items/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChange/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 867 - refRemote.json: "base URI change - change folder" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 868 - refRemote.json: "base URI change - change folder" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/list/0", 510s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/list", 510s # "keywordLocation": "/properties/list/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/list/0", 510s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolder/#/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/list", 510s # "keywordLocation": "/properties/list/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs1.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 869 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 870 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/list/0", 510s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/list", 510s # "keywordLocation": "/properties/list/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/list/0", 510s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/baseUriChangeFolderInSubschema/#/$defs/bar/items", 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "/list", 510s # "keywordLocation": "/properties/list/$ref/items" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/scope_change_defs2.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 871 - refRemote.json: "root ref in remote ref" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 872 - refRemote.json: "root ref in remote ref" - "null is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 873 - refRemote.json: "root ref in remote ref" - "object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 510s # "error": "got object, not null", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf/0/type", 510s # "error": "got object, not null", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/name-defs.json#/$defs/orNull/anyOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/anyOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/object#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 874 - refRemote.json: "remote ref with ref to defs" - "invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/$ref/$ref/properties/bar/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/ref-and-defs.json#/$defs/inner/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 875 - refRemote.json: "remote ref with ref to defs" - "valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 876 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 877 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/A/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 878 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/name/foo", 510s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "/name/foo", 510s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/foo-ref-string.json#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/name", 510s # "keywordLocation": "/properties/name/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/some-id#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 879 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 880 - refRemote.json: "remote HTTP ref with different $id" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/real-id-ref-string.json#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 881 - refRemote.json: "remote HTTP ref with different $id" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 882 - refRemote.json: "remote HTTP ref with different URN $id" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef#/$defs/bar/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 883 - refRemote.json: "remote HTTP ref with different URN $id" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 884 - refRemote.json: "remote HTTP ref with nested absolute ref" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/the-nested-id.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 885 - refRemote.json: "remote HTTP ref with nested absolute ref" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 886 - refRemote.json: "$ref to $ref finds detached $anchor" - "number is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 887 - refRemote.json: "$ref to $ref finds detached $anchor" - "non-number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/detached/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/$ref/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 888 - required.json: "required validation" - "present required property is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 889 - required.json: "required validation" - "non-present required property is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing property: foo", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 890 - required.json: "required validation" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 891 - required.json: "required validation" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 892 - required.json: "required validation" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 893 - required.json: "required default validation" - "not required by default" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 894 - required.json: "required with empty array" - "property not required" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 895 - required.json: "required with escaped characters" - "object with all properties present is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 896 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 897 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 898 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 899 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, toString, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, toString, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 900 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: toString, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: toString, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 901 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, constructor", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 902 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, toString", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "object is missing properties: __proto__, toString", 510s # "instanceLocation": "", 510s # "keywordLocation": "/required" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 903 - required.json: "required properties whose names are Javascript object property names" - "all present" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 904 - type.json: "integer type matches integers" - "an integer is an integer" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 905 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 906 - type.json: "integer type matches integers" - "a float is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got number, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got number, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 907 - type.json: "integer type matches integers" - "a string is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 908 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 909 - type.json: "integer type matches integers" - "an object is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got object, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got object, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 910 - type.json: "integer type matches integers" - "an array is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got array, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got array, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 911 - type.json: "integer type matches integers" - "a boolean is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got boolean, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got boolean, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 912 - type.json: "integer type matches integers" - "null is not an integer" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got null, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/integer.json#/type", 510s # "error": "got null, not integer", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 913 - type.json: "number type matches numbers" - "an integer is a number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 914 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 915 - type.json: "number type matches numbers" - "a float is a number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 916 - type.json: "number type matches numbers" - "a string is not a number" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 917 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 918 - type.json: "number type matches numbers" - "an object is not a number" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 919 - type.json: "number type matches numbers" - "an array is not a number" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 920 - type.json: "number type matches numbers" - "a boolean is not a number" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 921 - type.json: "number type matches numbers" - "null is not a number" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 922 - type.json: "string type matches strings" - "1 is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 923 - type.json: "string type matches strings" - "a float is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got number, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got number, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 924 - type.json: "string type matches strings" - "a string is a string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 925 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 926 - type.json: "string type matches strings" - "an empty string is still a string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 927 - type.json: "string type matches strings" - "an object is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 928 - type.json: "string type matches strings" - "an array is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got array, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got array, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 929 - type.json: "string type matches strings" - "a boolean is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got boolean, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got boolean, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 930 - type.json: "string type matches strings" - "null is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got null, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got null, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 931 - type.json: "object type matches objects" - "an integer is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 932 - type.json: "object type matches objects" - "a float is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 933 - type.json: "object type matches objects" - "a string is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 934 - type.json: "object type matches objects" - "an object is an object" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 935 - type.json: "object type matches objects" - "an array is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 936 - type.json: "object type matches objects" - "a boolean is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 937 - type.json: "object type matches objects" - "null is not an object" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 938 - type.json: "array type matches arrays" - "an integer is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 939 - type.json: "array type matches arrays" - "a float is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 940 - type.json: "array type matches arrays" - "a string is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 941 - type.json: "array type matches arrays" - "an object is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 942 - type.json: "array type matches arrays" - "an array is an array" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 943 - type.json: "array type matches arrays" - "a boolean is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 944 - type.json: "array type matches arrays" - "null is not an array" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not array", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 945 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 946 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 947 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 948 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 949 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 950 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 951 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 952 - type.json: "boolean type matches booleans" - "true is a boolean" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 953 - type.json: "boolean type matches booleans" - "false is a boolean" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 954 - type.json: "boolean type matches booleans" - "null is not a boolean" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not boolean", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 955 - type.json: "null type matches only the null object" - "an integer is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 956 - type.json: "null type matches only the null object" - "a float is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 957 - type.json: "null type matches only the null object" - "zero is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 958 - type.json: "null type matches only the null object" - "a string is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 959 - type.json: "null type matches only the null object" - "an empty string is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 960 - type.json: "null type matches only the null object" - "an object is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 961 - type.json: "null type matches only the null object" - "an array is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 962 - type.json: "null type matches only the null object" - "true is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 963 - type.json: "null type matches only the null object" - "false is not null" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 964 - type.json: "null type matches only the null object" - "null is null" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 965 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 966 - type.json: "multiple types can be specified in an array" - "a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 967 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got number, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 968 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got object, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 969 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got array, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 970 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got boolean, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 971 - type.json: "multiple types can be specified in an array" - "null is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not one of integer, string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 972 - type.json: "type as array with one item" - "string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 973 - type.json: "type as array with one item" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 974 - type.json: "type: array or object" - "array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 975 - type.json: "type: array or object" - "object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 976 - type.json: "type: array or object" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 977 - type.json: "type: array or object" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 978 - type.json: "type: array or object" - "null is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got null, not one of array, object", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 979 - type.json: "type: array, object or null" - "array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 980 - type.json: "type: array, object or null" - "object is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 981 - type.json: "type: array, object or null" - "null is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 982 - type.json: "type: array, object or null" - "number is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of array, object, null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not one of array, object, null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 983 - type.json: "type: array, object or null" - "string is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not one of array, object, null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not one of array, object, null", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 984 - unevaluatedItems.json: "unevaluatedItems true" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 985 - unevaluatedItems.json: "unevaluatedItems true" - "with unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 986 - unevaluatedItems.json: "unevaluatedItems false" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 987 - unevaluatedItems.json: "unevaluatedItems false" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 988 - unevaluatedItems.json: "unevaluatedItems as schema" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 989 - unevaluatedItems.json: "unevaluatedItems as schema" - "with valid unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 990 - unevaluatedItems.json: "unevaluatedItems as schema" - "with invalid unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 991 - unevaluatedItems.json: "unevaluatedItems with uniform items" - "unevaluatedItems doesn't apply" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 992 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 993 - unevaluatedItems.json: "unevaluatedItems with tuple" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 994 - unevaluatedItems.json: "unevaluatedItems with items and prefixItems" - "unevaluatedItems doesn't apply" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 995 - unevaluatedItems.json: "unevaluatedItems with items" - "valid under items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 996 - unevaluatedItems.json: "unevaluatedItems with items" - "invalid under items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 997 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 998 - unevaluatedItems.json: "unevaluatedItems with nested tuple" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 999 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with only (valid) additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1000 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with no additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1001 - unevaluatedItems.json: "unevaluatedItems with nested items" - "with invalid additional item" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not boolean", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1002 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with no additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1003 - unevaluatedItems.json: "unevaluatedItems with nested prefixItems and items" - "with additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1004 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with no additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1005 - unevaluatedItems.json: "unevaluatedItems with nested unevaluatedItems" - "with additional items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1006 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1007 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when one schema matches and has unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1008 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1009 - unevaluatedItems.json: "unevaluatedItems with anyOf" - "when two schemas match and has unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1010 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1011 - unevaluatedItems.json: "unevaluatedItems with oneOf" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1012 - unevaluatedItems.json: "unevaluatedItems with not" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1013 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1014 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if matches and it has unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1015 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1016 - unevaluatedItems.json: "unevaluatedItems with if/then/else" - "when if doesn't match and it has unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1017 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1018 - unevaluatedItems.json: "unevaluatedItems with boolean schemas" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1019 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1020 - unevaluatedItems.json: "unevaluatedItems with $ref" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1021 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1022 - unevaluatedItems.json: "unevaluatedItems before $ref" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1023 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with no unevaluated items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1024 - unevaluatedItems.json: "unevaluatedItems with $dynamicRef" - "with unevaluated items" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/$ref/unevaluatedItems" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/$ref/unevaluatedItems" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-items-with-dynamic-ref/baseSchema#/unevaluatedItems", 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1025 - unevaluatedItems.json: "unevaluatedItems can't see inside cousins" - "always fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/allOf/1/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/allOf/1/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1026 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "no extra items" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1027 - unevaluatedItems.json: "item is evaluated in an uncle schema to unevaluatedItems" - "uncle keyword evaluation is not significant" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/foo/1", 510s # "keywordLocation": "/properties/foo/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/unevaluatedItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/foo/1", 510s # "keywordLocation": "/properties/foo/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/unevaluatedItems" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1028 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "second item is evaluated by contains" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1029 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains fails, second item is not evaluated" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/contains/type" 510s # }, 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/contains/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/contains/type" 510s # }, 510s # { 510s # "error": "got integer, not string", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/contains/type" 510s # }, 510s # { 510s # "error": "subschema is not valid against any item", 510s # "instanceLocation": "", 510s # "keywordLocation": "/contains" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1030 - unevaluatedItems.json: "unevaluatedItems depends on adjacent contains" - "contains passes, second item is not evaluated" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1031 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "5 not evaluated, passes unevaluatedItems" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1032 - unevaluatedItems.json: "unevaluatedItems depends on multiple nested contains" - "7 not evaluated, fails unevaluatedItems" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 5", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is not a multiple of 5", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems/multipleOf" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1033 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "empty array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1034 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1035 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's and b's are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1036 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "a's, b's and c's are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1037 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1038 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only c's are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1039 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only b's and c's are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/1", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/3", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1040 - unevaluatedItems.json: "unevaluatedItems and contains interact to control item dependency relationship" - "only a's and c's are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/4", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1041 - unevaluatedItems.json: "non-array instances are valid" - "ignores booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1042 - unevaluatedItems.json: "non-array instances are valid" - "ignores integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1043 - unevaluatedItems.json: "non-array instances are valid" - "ignores floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1044 - unevaluatedItems.json: "non-array instances are valid" - "ignores objects" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1045 - unevaluatedItems.json: "non-array instances are valid" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1046 - unevaluatedItems.json: "non-array instances are valid" - "ignores null" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1047 - unevaluatedItems.json: "unevaluatedItems with null instance elements" - "allows null elements" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1048 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "valid in case if is evaluated" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1049 - unevaluatedItems.json: "unevaluatedItems can see annotations from if without then and else" - "invalid in case if is evaluated" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/0", 510s # "keywordLocation": "/unevaluatedItems" 510s # }, 510s # { 510s # "error": "subschema is not valid against all additional items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1050 - unevaluatedProperties.json: "unevaluatedProperties true" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1051 - unevaluatedProperties.json: "unevaluatedProperties true" - "with unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1052 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1053 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with valid unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1054 - unevaluatedProperties.json: "unevaluatedProperties schema" - "with invalid unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 3", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties/minLength" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 3", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties/minLength" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1055 - unevaluatedProperties.json: "unevaluatedProperties false" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1056 - unevaluatedProperties.json: "unevaluatedProperties false" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1057 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1058 - unevaluatedProperties.json: "unevaluatedProperties with adjacent properties" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1059 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1060 - unevaluatedProperties.json: "unevaluatedProperties with adjacent patternProperties" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1061 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with no additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1062 - unevaluatedProperties.json: "unevaluatedProperties with adjacent additionalProperties" - "with additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1063 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with no additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1064 - unevaluatedProperties.json: "unevaluatedProperties with nested properties" - "with additional properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1065 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with no additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1066 - unevaluatedProperties.json: "unevaluatedProperties with nested patternProperties" - "with additional properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1067 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with no additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1068 - unevaluatedProperties.json: "unevaluatedProperties with nested additionalProperties" - "with additional properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1069 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with no nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1070 - unevaluatedProperties.json: "unevaluatedProperties with nested unevaluatedProperties" - "with nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1071 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1072 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when one matches and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1073 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1074 - unevaluatedProperties.json: "unevaluatedProperties with anyOf" - "when two match and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1075 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1076 - unevaluatedProperties.json: "unevaluatedProperties with oneOf" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/quux", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1077 - unevaluatedProperties.json: "unevaluatedProperties with not" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1078 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1079 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is true and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1080 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1081 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else" - "when if is false and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1082 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has no unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1083 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is true and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1084 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1085 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, then not defined" - "when if is false and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1086 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1087 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is true and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1088 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has no unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1089 - unevaluatedProperties.json: "unevaluatedProperties with if/then/else, else not defined" - "when if is false and has unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1090 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1091 - unevaluatedProperties.json: "unevaluatedProperties with dependentSchemas" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1092 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1093 - unevaluatedProperties.json: "unevaluatedProperties with boolean schemas" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1094 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1095 - unevaluatedProperties.json: "unevaluatedProperties with $ref" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1096 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1097 - unevaluatedProperties.json: "unevaluatedProperties before $ref" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1098 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with no unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1099 - unevaluatedProperties.json: "unevaluatedProperties with $dynamicRef" - "with unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/baz", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://example.com/unevaluated-properties-with-dynamic-ref/baseSchema#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1100 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins" - "always fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1101 - unevaluatedProperties.json: "unevaluatedProperties can't see inside cousins (reverse order)" - "always fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1102 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with no nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1103 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties outside" - "with nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1104 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with no nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1105 - unevaluatedProperties.json: "nested unevaluatedProperties, outer false, inner true, properties inside" - "with nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1106 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with no nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1107 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties outside" - "with nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1108 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with no nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1109 - unevaluatedProperties.json: "nested unevaluatedProperties, outer true, inner false, properties inside" - "with nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1110 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with no nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1111 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, true with properties" - "with nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1112 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with no nested unevaluated properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1113 - unevaluatedProperties.json: "cousin unevaluatedProperties, true and false, false with properties" - "with nested unevaluated properties" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/1/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 1 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1114 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "no extra properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1115 - unevaluatedProperties.json: "property is evaluated in an uncle schema to unevaluatedProperties" - "uncle keyword evaluation is not significant" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo/faz", 510s # "keywordLocation": "/properties/foo/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo/faz", 510s # "keywordLocation": "/properties/foo/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/properties/foo/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1116 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "base case: both properties present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1117 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, bar is missing" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1118 - unevaluatedProperties.json: "in-place applicator siblings, allOf has unevaluated" - "in place applicator siblings, foo is missing" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "subschema 0 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1119 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "base case: both properties present" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1120 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, bar is missing" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1121 - unevaluatedProperties.json: "in-place applicator siblings, anyOf has unevaluated" - "in place applicator siblings, foo is missing" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1122 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Empty is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1123 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Single is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1124 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 1st level is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1125 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Nested is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1126 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 2nd level is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x/y", 510s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x/y", 510s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1127 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Deep nested is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1128 - unevaluatedProperties.json: "unevaluatedProperties + single cyclic ref" - "Unevaluated on 3rd level is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x/x/y", 510s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/x/x", 510s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/properties/x/$ref/properties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x/x/y", 510s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/unevaluatedProperties", 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "/x/x", 510s # "keywordLocation": "/properties/x/$ref/properties/x/$ref/unevaluatedProperties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/properties/x/$ref/properties" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1129 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "Empty is invalid (no x or y)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/required", 510s # "error": "object is missing property: x", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 510s # }, 510s # { 510s # "error": "object is missing property: y", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/required", 510s # "error": "object is missing property: x", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 510s # }, 510s # { 510s # "error": "object is missing property: y", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1130 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b are invalid (no x or y)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/required", 510s # "error": "object is missing property: x", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 510s # }, 510s # { 510s # "error": "object is missing property: y", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/required", 510s # "error": "object is missing property: x", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/0/$ref/required" 510s # }, 510s # { 510s # "error": "object is missing property: y", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1131 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "x and y are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1132 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and x are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1133 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and y are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1134 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1135 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and y are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1136 - unevaluatedProperties.json: "unevaluatedProperties + ref inside allOf / oneOf" - "a and b and x and y are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf/2/oneOf" 510s # }, 510s # { 510s # "error": "subschema 2 is not valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/allOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/x", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/y", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1137 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "Empty is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 510s # "error": "object is missing property: c", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 510s # "error": "object is missing property: d", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 510s # "error": "object is missing property: b", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 510s # "error": "object is missing property: xx", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 510s # "error": "object is missing property: all", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf/0/required", 510s # "error": "object is missing property: c", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/0/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf/1/required", 510s # "error": "object is missing property: d", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 510s # "error": "object is missing property: b", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 510s # "error": "object is missing property: xx", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 510s # "error": "object is missing property: all", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1138 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1139 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1140 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1141 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "d is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1142 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + b is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1143 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + c is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1144 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "a + d is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1145 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + c is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1146 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "b + d is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1147 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "c + d is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 510s # "error": "object is missing property: b", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 510s # "error": "object is missing property: xx", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 510s # "error": "object is missing property: all", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/two/oneOf", 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/1/required", 510s # "error": "object is missing property: b", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/1/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/2/required", 510s # "error": "object is missing property: xx", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/2/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf/3/required", 510s # "error": "object is missing property: all", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf/3/required" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1148 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1149 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foox is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1150 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + foo is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1151 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + a is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1152 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + b is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 1, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 1, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/b", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1153 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + c is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/c", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1154 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "xx + d is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/one/oneOf", 510s # "error": "multiple subschemas are valid: 0, 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/0/$ref/oneOf" 510s # }, 510s # { 510s # "error": "object is missing property: a", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf/1/required" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/d", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/xx", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1155 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1156 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + foo is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1157 - unevaluatedProperties.json: "dynamic evalation inside nested refs" - "all + a is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "multiple subschemas are valid: 0, 1", 510s # "instanceLocation": "", 510s # "keywordLocation": "/oneOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1158 - unevaluatedProperties.json: "non-object instances are valid" - "ignores booleans" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1159 - unevaluatedProperties.json: "non-object instances are valid" - "ignores integers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1160 - unevaluatedProperties.json: "non-object instances are valid" - "ignores floats" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1161 - unevaluatedProperties.json: "non-object instances are valid" - "ignores arrays" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1162 - unevaluatedProperties.json: "non-object instances are valid" - "ignores strings" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1163 - unevaluatedProperties.json: "non-object instances are valid" - "ignores null" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1164 - unevaluatedProperties.json: "unevaluatedProperties with null valued instance properties" - "allows null valued properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1165 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "allows only number properties" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1166 - unevaluatedProperties.json: "unevaluatedProperties not affected by propertyNames" - "string property is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/a", 510s # "keywordLocation": "/unevaluatedProperties/type" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "/a", 510s # "keywordLocation": "/unevaluatedProperties/type" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1167 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "valid in case if is evaluated" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1168 - unevaluatedProperties.json: "unevaluatedProperties can see annotations from if without then and else" - "invalid in case if is evaluated" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1169 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't consider dependentSchemas" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/foo", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1170 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties doesn't see bar when foo2 is absent" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/unevaluatedProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/unevaluatedProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1171 - unevaluatedProperties.json: "dependentSchemas with unevaluatedProperties" - "unevaluatedProperties sees bar when foo2 is present" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1172 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1173 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1174 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1175 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1176 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1177 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1178 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1179 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1180 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1181 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1182 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1183 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1184 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1185 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1186 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1187 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 2 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1188 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1189 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1190 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1191 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1192 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1193 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1194 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1195 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 4 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 4 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1196 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1197 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1198 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1199 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1200 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1201 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1202 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1203 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1204 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1205 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1206 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 2 and 3 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 2 and 3 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1207 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 2 and 3 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 2 and 3 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1208 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1209 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1210 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1211 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "items at indices 0 and 1 are not unique", 510s # "instanceLocation": "", 510s # "keywordLocation": "/uniqueItems" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1212 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1213 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1214 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1215 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1216 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1217 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1218 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1219 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1220 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1221 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1222 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1223 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1224 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1225 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1226 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1227 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1228 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1229 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1230 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1231 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1232 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1233 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1234 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1235 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1236 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1237 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1238 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1239 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1240 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional item not permitted", 510s # "instanceLocation": "/2", 510s # "keywordLocation": "/items" 510s # }, 510s # { 510s # "error": "subschema is not valid against all items", 510s # "instanceLocation": "", 510s # "keywordLocation": "/items" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1241 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "applicator vocabulary still works" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 510s # "error": "property not permitted", 510s # "instanceLocation": "/badProperty", 510s # "keywordLocation": "/properties/badProperty" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties/badProperty", 510s # "error": "property not permitted", 510s # "instanceLocation": "/badProperty", 510s # "keywordLocation": "/properties/badProperty" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/no/validation#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1242 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: valid number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1243 - vocabulary.json: "schema that uses custom metaschema with with no validation vocabulary" - "no validation: invalid number, but it still validates" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1244 - vocabulary.json: "ignore unrecognized optional vocabulary" - "string value" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not number", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1245 - vocabulary.json: "ignore unrecognized optional vocabulary" - "number value" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1246 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "exact match to enum, and type matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1247 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "in implementations that strip $anchor, this may match either $def" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 510s # "error": "got object, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1248 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "match $ref to $anchor" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1249 - optional/anchor.json: "$anchor inside an enum is not a real identifier" - "no match on enum or $ref to $anchor" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/anchor_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/real_identifier_in_schema/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1250 - optional/bignum.json: "integer" - "a bignum is an integer" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1251 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1252 - optional/bignum.json: "number" - "a bignum is a number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1253 - optional/bignum.json: "number" - "a negative bignum is a number" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1254 - optional/bignum.json: "string" - "a bignum is not a string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "http://localhost:1234/draft2020-12/nested/string.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/type" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1255 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1256 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMaximum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1257 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1258 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 510s # "instanceLocation": "", 510s # "keywordLocation": "/exclusiveMinimum" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1259 - optional/cross-draft.json: "refs to historic drafts are processed as historic drafts" - "first item not a string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1260 - optional/dependencies-compatibility.json: "single dependency" - "neither" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1261 - optional/dependencies-compatibility.json: "single dependency" - "nondependant" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1262 - optional/dependencies-compatibility.json: "single dependency" - "with dependency" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1263 - optional/dependencies-compatibility.json: "single dependency" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":[\"foo\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1264 - optional/dependencies-compatibility.json: "single dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1265 - optional/dependencies-compatibility.json: "single dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1266 - optional/dependencies-compatibility.json: "single dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1267 - optional/dependencies-compatibility.json: "empty dependents" - "empty object" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1268 - optional/dependencies-compatibility.json: "empty dependents" - "object with one property" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1269 - optional/dependencies-compatibility.json: "empty dependents" - "non-object is valid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1270 - optional/dependencies-compatibility.json: "multiple dependents required" - "neither" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1271 - optional/dependencies-compatibility.json: "multiple dependents required" - "nondependants" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1272 - optional/dependencies-compatibility.json: "multiple dependents required" - "with dependencies" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1273 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing dependency" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"foo\":1,\"quux\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1274 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing other dependency" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":1,\"quux\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1275 - optional/dependencies-compatibility.json: "multiple dependents required" - "missing both dependencies" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"quux\":1}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"quux\":[\"foo\",\"bar\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1276 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1277 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1278 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "CRLF missing dependent" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"foo\":2,\"foo\\nbar\":1}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"foo\\nbar\":[\"foo\\rbar\"],\"foo\\\"bar\":[\"foo'bar\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1279 - optional/dependencies-compatibility.json: "dependencies with escaped characters" - "quoted quotes missing dependent" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"foo\\\"bar\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"foo\\nbar\":[\"foo\\rbar\"],\"foo\\\"bar\":[\"foo'bar\"]}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1280 - optional/dependencies-compatibility.json: "single schema dependency" - "valid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1281 - optional/dependencies-compatibility.json: "single schema dependency" - "no dependency" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1282 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":2,\"foo\":\"quux\"}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1283 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type other" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":\"quux\",\"foo\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1284 - optional/dependencies-compatibility.json: "single schema dependency" - "wrong type both" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":\"quux\",\"foo\":\"quux\"}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":{\"properties\":{\"bar\":{\"type\":\"integer\"},\"foo\":{\"type\":\"integer\"}}}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1285 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores arrays" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1286 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores strings" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1287 - optional/dependencies-compatibility.json: "single schema dependency" - "ignores other non-objects" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1288 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema true is valid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1289 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with property having schema false is invalid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":2}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":false,\"foo\":true}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1290 - optional/dependencies-compatibility.json: "boolean subschemas" - "object with both properties is invalid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"bar\":2,\"foo\":1}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"bar\":false,\"foo\":true}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1291 - optional/dependencies-compatibility.json: "boolean subschemas" - "empty object is valid" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1292 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1293 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"foo'bar\":{\"foo\\\"bar\":1}}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1294 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted tab invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"a\":2,\"foo\\tbar\":1}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1295 - optional/dependencies-compatibility.json: "schema dependencies with escaped characters" - "quoted quote invalid under dependent schema" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"foo'bar\":1}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"dependencies\":{\"foo\\tbar\":{\"minProperties\":4},\"foo'bar\":{\"required\":[\"foo\\\"bar\"]}}}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s # 510s ok 1296 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "integer property passes" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1297 - optional/dynamicRef.json: "$dynamicRef skips over intermediate resources - pointer reference across resource boundary" - "string property fails" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar-item/content", 510s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/bar-item", 510s # "keywordLocation": "/properties/bar-item/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/$defs/defaultContent/type", 510s # "error": "got string, not integer", 510s # "instanceLocation": "/bar-item/content", 510s # "keywordLocation": "/properties/bar-item/$ref/properties/content/$dynamicRef/type" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/item#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "/bar-item", 510s # "keywordLocation": "/properties/bar-item/$ref/properties" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main#/properties", 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/properties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1298 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1299 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1300 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1301 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1302 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1303 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1304 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1305 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1306 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1307 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"߀\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1308 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"߀\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1309 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false # 510s 1..1 510s } 510s ok 1310 - 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" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "\"߀\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1311 - 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" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "\"߀\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1312 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true # 510s 1..1 510s } 510s ok 1313 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"é\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\w$\",\"type\":\"string\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1314 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false # 510s 1..1 510s } 510s ok 1315 - 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" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "\"é\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\W$\",\"type\":\"string\"}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1316 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1317 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1318 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1319 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1320 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1321 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "\"\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\s$\",\"type\":\"string\"}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1322 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1323 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1324 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1325 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1326 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1327 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1328 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1329 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1330 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1331 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1332 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\S$\",\"type\":\"string\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1333 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1334 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1335 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1336 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1337 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1338 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1339 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1340 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1341 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1342 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1343 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # 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.\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"\\\\wcole\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1344 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # 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.\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"\\\\wcole\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1345 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1346 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1347 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1348 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1349 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1350 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1351 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"৪২\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"pattern\":\"^\\\\d+$\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1352 - optional/ecmascript-regex.json: "\a is not an ECMA 262 control escape" - "when used as a pattern" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "\"\\\\a\"" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"format\":\"regex\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1353 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1354 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1355 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1356 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1357 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1358 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1359 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/L'ÉCOLE", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/L'ÉCOLE", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1360 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1361 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"l'école\":\"pas de vraie vie\"}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1362 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"l'école\":\"pas de vraie vie\"}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1363 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/L'ÉCOLE", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/L'ÉCOLE", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1364 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/l'école", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/l'école", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1365 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/l'école", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/l'école", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1366 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1367 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1368 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/-%#", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/-%#", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1369 - 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" 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected false; got true 510s # data: "{\"৪২\":\"khajit has wares if you have coin\"}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"additionalProperties\":false,\"patternProperties\":{\"^\\\\d+$\":true},\"type\":\"object\"}" 510s # result: { 510s # "valid": true 510s # } 510s 1..1 510s } 510s ok 1370 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1371 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/-%#", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "additional property not permitted", 510s # "instanceLocation": "/-%#", 510s # "keywordLocation": "/additionalProperties" 510s # }, 510s # { 510s # "error": "not all additional properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/additionalProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1372 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1373 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1374 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: valid string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1375 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: false" - "format-assertion: false: invalid string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 510s # "error": "not a valid ipv4", 510s # "instanceLocation": "", 510s # "keywordLocation": "/format" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/format-assertion/false#/format", 510s # "error": "not a valid ipv4", 510s # "instanceLocation": "", 510s # "keywordLocation": "/format" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1376 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: valid string" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1377 - optional/format-assertion.json: "schema that uses custom metaschema with format-assertion: true" - "format-assertion: true: invalid string" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 510s # "error": "not a valid ipv4", 510s # "instanceLocation": "", 510s # "keywordLocation": "/format" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "https://schema/using/format-assertion/true#/format", 510s # "error": "not a valid ipv4", 510s # "instanceLocation": "", 510s # "keywordLocation": "/format" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1378 - optional/id.json: "$id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1379 - optional/id.json: "$id inside an enum is not a real identifier" - "match $ref to $id" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1380 - optional/id.json: "$id inside an enum is not a real identifier" - "no match on enum or $ref to $id" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_enum/enum", 510s # "error": "value does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/enum" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/id/my_identifier.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1381 - optional/no-schema.json: "validation without $schema" - "a 3-character string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1382 - optional/no-schema.json: "validation without $schema" - "a 1-character string is not valid" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "length is less than 2", 510s # "instanceLocation": "", 510s # "keywordLocation": "/minLength" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1383 - optional/no-schema.json: "validation without $schema" - "a non-string is valid" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s # 510s ok 1384 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1385 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1386 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1387 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1388 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1389 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1390 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "pattern does not match", 510s # "instanceLocation": "", 510s # "keywordLocation": "/pattern" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1391 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1392 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1393 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1394 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/🐲", 510s # "keywordLocation": "/patternProperties/^🐲*$/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/🐲", 510s # "keywordLocation": "/patternProperties/^🐲*$/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1395 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/🐲🐲", 510s # "keywordLocation": "/patternProperties/^🐲*$/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "got string, not integer", 510s # "instanceLocation": "/🐲🐲", 510s # "keywordLocation": "/patternProperties/^🐲*$/type" 510s # }, 510s # { 510s # "error": "not all properties are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/patternProperties" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s ok 1396 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "{\"bar\":3}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"properties\":{\"bar\":{\"$ref\":\"#/unknown-keyword\"}},\"unknown-keyword\":{\"type\":\"integer\"}}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1397 - optional/refOfUnknownKeyword.json: "reference of a root arbitrary keyword " - "mismatch" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false # 510s 1..1 510s } 510s ok 1398 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "{\"bar\":3}" 510s # schema: "{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"properties\":{\"bar\":{\"$ref\":\"#/properties/foo/unknown-keyword\"},\"foo\":{\"unknown-keyword\":{\"type\":\"integer\"}}}}" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1399 - optional/refOfUnknownKeyword.json: "reference of an arbitrary keyword of a sub-schema" - "mismatch" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "error": "EXCEPTION: bad reference to #/properties/foo/unknown-keyword: not a schema", 510s # "instanceLocation": "/bar", 510s # "keywordLocation": "/properties/bar/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false # 510s 1..1 510s } 510s ok 1400 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "match" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "/base#/$ref", 510s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "/base#/$ref", 510s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s not ok 1 - evaluation result is incorrect # 510s # Failed test (with amnesty) 'evaluation result is incorrect' 510s # at t/zzz-acceptance-draft2020-12.t line 51. 510s # expected true; got false 510s # data: "\"a string\"" 510s # schema: "{\"$id\":\"/base\",\"$ref\":\"#/examples/0\",\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"examples\":[{\"type\":\"string\"}]}" 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "/base#/$ref", 510s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s 1..1 510s } 510s ok 1401 - optional/refOfUnknownKeyword.json: "reference internals of known non-applicator" - "mismatch" { # TODO Test marked TODO via "todo_tests" 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "/base#/$ref", 510s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "/base#/$ref", 510s # "error": "EXCEPTION: bad reference to /base#/examples/0: not a schema", 510s # "instanceLocation": "", 510s # "keywordLocation": "/$ref" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false # 510s 1..1 510s } 510s # 510s ok 1402 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 510s # result: { 510s # "valid": true 510s # } 510s # short-circuited result: { 510s # "valid": true 510s # } 510s ok 1 - test passes: data is valid: true 510s 1..1 510s } 510s ok 1403 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 510s # "error": "got null, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/2/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 510s # "error": "got null, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/2/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s ok 1404 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 510s # result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/2/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s # short-circuited result: { 510s # "errors": [ 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown0/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/0/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "#/$defs/id_in_unknown1/not", 510s # "error": "subschema is valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/1/$ref/not" 510s # }, 510s # { 510s # "absoluteKeywordLocation": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json#/type", 510s # "error": "got integer, not string", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf/2/$ref/type" 510s # }, 510s # { 510s # "error": "no subschemas are valid", 510s # "instanceLocation": "", 510s # "keywordLocation": "/anyOf" 510s # } 510s # ], 510s # "valid": false 510s # } 510s ok 1 - test passes: data is valid: false 510s 1..1 510s } 510s # 510s # 510s # generated with: Test::JSON::Schema::Acceptance 1.026 510s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 510s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 510s # specification version: draft2020-12 510s # optional tests included: yes 510s # skipping directory: optional/format 510s # 510s # filename pass todo-fail fail 510s # --------------------------------------------------------------- 510s # additionalProperties.json 21 0 0 510s # allOf.json 30 0 0 510s # anchor.json 8 0 0 510s # anyOf.json 18 0 0 510s # boolean_schema.json 18 0 0 510s # const.json 50 0 0 510s # contains.json 21 0 0 510s # content.json 18 0 0 510s # default.json 7 0 0 510s # defs.json 2 0 0 510s # dependentRequired.json 20 0 0 510s # dependentSchemas.json 20 0 0 510s # dynamicRef.json 42 0 0 510s # enum.json 45 0 0 510s # exclusiveMaximum.json 4 0 0 510s # exclusiveMinimum.json 4 0 0 510s # format.json 133 0 0 510s # if-then-else.json 26 0 0 510s # infinite-loop-detection.json 2 0 0 510s # items.json 29 0 0 510s # maxContains.json 12 0 0 510s # maxItems.json 6 0 0 510s # maxLength.json 7 0 0 510s # maxProperties.json 10 0 0 510s # maximum.json 8 0 0 510s # minContains.json 28 0 0 510s # minItems.json 6 0 0 510s # minLength.json 7 0 0 510s # minProperties.json 8 0 0 510s # minimum.json 11 0 0 510s # multipleOf.json 10 0 0 510s # not.json 40 0 0 510s # oneOf.json 27 0 0 510s # pattern.json 9 0 0 510s # patternProperties.json 23 0 0 510s # prefixItems.json 11 0 0 510s # properties.json 28 0 0 510s # propertyNames.json 10 0 0 510s # ref.json 77 0 0 510s # refRemote.json 31 0 0 510s # required.json 16 0 0 510s # type.json 80 0 0 510s # unevaluatedItems.json 66 0 0 510s # unevaluatedProperties.json 122 0 0 510s # uniqueItems.json 69 0 0 510s # vocabulary.json 5 0 0 510s # optional/anchor.json 4 0 0 510s # optional/bignum.json 9 0 0 510s # optional/cross-draft.json 1 0 0 510s # optional/dependencies-compatibility.json 22 14 0 510s # optional/dynamicRef.json 2 0 0 510s # optional/ecmascript-regex.json 60 15 0 510s # optional/float-overflow.json 1 0 0 510s # optional/format-assertion.json 4 0 0 510s # optional/id.json 3 0 0 510s # optional/no-schema.json 3 0 0 510s # optional/non-bmp-regex.json 12 0 0 510s # optional/refOfUnknownKeyword.json 3 3 0 510s # optional/unknownKeyword.json 3 0 0 510s # --------------------------------------------------------------- 510s # TOTAL 1372 32 0 510s # 510s # Congratulations, all non-optional tests are passing! 510s # 510s ok 1405 - no leaks in the main evaluator object 510s ok 1406 - no leaks in the short-circuiting evaluator object 510s 1..1406 510s ok 511s t/zzz-acceptance-draft4-format.t ........ 511s # AUTHOR_TESTING: 511s # AUTOMATED_TESTING: 1 511s # EXTENDED_TESTING: 511s # NO_TODO: 511s # TEST_DIR: 511s # NO_SHORT_CIRCUIT: 511s # 511s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4/optional/format against draft4... 511s # 511s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid date-time", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s # 511s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid email", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s # 511s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 59 - hostname.json: "validation of host names" - "single label" { # TODO Test marked TODO via "todo_tests" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s not ok 1 - evaluation result is incorrect # 511s # Failed test (with amnesty) 'evaluation result is incorrect' 511s # at t/zzz-acceptance-draft4-format.t line 65. 511s # expected true; got false 511s # data: "\"hostname\"" 511s # schema: "{\"format\":\"hostname\"}" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s 1..1 511s } 511s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s not ok 1 - evaluation result is incorrect # 511s # Failed test (with amnesty) 'evaluation result is incorrect' 511s # at t/zzz-acceptance-draft4-format.t line 65. 511s # expected true; got false 511s # data: "\"host-name\"" 511s # schema: "{\"format\":\"hostname\"}" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s 1..1 511s } 511s ok 61 - hostname.json: "validation of host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s not ok 1 - evaluation result is incorrect # 511s # Failed test (with amnesty) 'evaluation result is incorrect' 511s # at t/zzz-acceptance-draft4-format.t line 65. 511s # expected true; got false 511s # data: "\"h0stn4me\"" 511s # schema: "{\"format\":\"hostname\"}" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s 1..1 511s } 511s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s not ok 1 - evaluation result is incorrect # 511s # Failed test (with amnesty) 'evaluation result is incorrect' 511s # at t/zzz-acceptance-draft4-format.t line 65. 511s # expected true; got false 511s # data: "\"hostnam3\"" 511s # schema: "{\"format\":\"hostname\"}" 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid hostname", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s 1..1 511s } 511s # 511s ok 63 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 64 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 69 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 70 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 71 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 75 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 76 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 77 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 78 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv4", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s # 511s ok 79 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 80 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 85 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 86 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 87 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 88 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 89 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 90 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 91 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 92 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 93 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 94 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 95 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 97 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 98 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 99 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 100 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 104 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 105 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 106 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 107 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 108 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 109 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 110 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 111 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 112 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 113 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 114 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 115 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 117 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 118 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid ipv6", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s # 511s ok 119 - unknown.json: "unknown format" - "unknown formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 120 - unknown.json: "unknown format" - "unknown formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 121 - unknown.json: "unknown format" - "unknown formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 122 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 123 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 124 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 125 - unknown.json: "unknown format" - "unknown formats ignore strings" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s # 511s ok 126 - uri.json: "validation of URIs" - "all string formats ignore integers" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 127 - uri.json: "validation of URIs" - "all string formats ignore floats" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 128 - uri.json: "validation of URIs" - "all string formats ignore objects" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 129 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 130 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 131 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 132 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 133 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 134 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 135 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 136 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 137 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 138 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 139 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 140 - uri.json: "validation of URIs" - "a valid URL " { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 141 - uri.json: "validation of URIs" - "a valid mailto URI" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 142 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 143 - uri.json: "validation of URIs" - "a valid tel URI" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 144 - uri.json: "validation of URIs" - "a valid URN" { 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s ok 1 - test passes: data is valid: true 511s 1..1 511s } 511s ok 145 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 146 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 147 - uri.json: "validation of URIs" - "an invalid URI" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 148 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 149 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 150 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 511s # result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s # short-circuited result: { 511s # "errors": [ 511s # { 511s # "error": "not a valid uri", 511s # "instanceLocation": "", 511s # "keywordLocation": "/format" 511s # } 511s # ], 511s # "valid": false 511s # } 511s ok 1 - test passes: data is valid: false 511s 1..1 511s } 511s ok 151 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 511s # result: { 511s # "valid": true 511s # } 511s # short-circuited result: { 511s # "valid": true 511s # } 511s not ok 1 - evaluation result is incorrect # 511s # Failed test (with amnesty) 'evaluation result is incorrect' 511s # at t/zzz-acceptance-draft4-format.t line 65. 511s # expected false; got true 511s # data: "\"bar,baz:foo\"" 511s # schema: "{\"format\":\"uri\"}" 511s # result: { 511s # "valid": true 511s # } 511s 1..1 511s } 511s # 511s # 511s # generated with: Test::JSON::Schema::Acceptance 1.026 511s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 511s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 511s # specification version: draft4 511s # using custom test directory: /optional/format 511s # optional tests included: yes 511s # 511s # filename pass todo-fail fail 511s # --------------------------------------------------------------- 511s # date-time.json 25 0 0 511s # email.json 15 0 0 511s # hostname.json 18 4 0 511s # ipv4.json 16 0 0 511s # ipv6.json 40 0 0 511s # unknown.json 7 0 0 511s # uri.json 25 1 0 511s # --------------------------------------------------------------- 511s # TOTAL 146 5 0 511s # 511s # Congratulations, all non-optional tests are passing! 511s # 511s ok 152 - no leaks in the main evaluator object 511s ok 153 - no leaks in the short-circuiting evaluator object 511s 1..153 511s ok 515s t/zzz-acceptance-draft4.t ............... 515s # AUTHOR_TESTING: 515s # AUTOMATED_TESTING: 1 515s # EXTENDED_TESTING: 515s # NO_TODO: 515s # TEST_DIR: 515s # NO_SHORT_CIRCUIT: 515s # 515s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 515s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft4 against draft4... 515s # 515s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "all items match schema" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 4 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 5 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 9 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 10 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 11 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 12 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 13 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not boolean", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not boolean", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 14 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 15 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 16 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/2", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 17 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 18 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 19 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 20 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 25 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 26 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/élmény", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/élmény", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 27 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 28 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 29 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 30 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 31 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 32 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 33 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not boolean", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 34 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 35 - allOf.json: "allOf" - "allOf" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 36 - allOf.json: "allOf" - "mismatch second" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 37 - allOf.json: "allOf" - "mismatch first" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/required" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/required" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 38 - allOf.json: "allOf" - "wrong type" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/allOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/properties" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/allOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/properties" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 39 - allOf.json: "allOf with base schema" - "valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 40 - allOf.json: "allOf with base schema" - "mismatch base schema" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 41 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 42 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: baz", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/required" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: baz", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/required" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 43 - allOf.json: "allOf with base schema" - "mismatch both" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "object is missing property: baz", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/required" 515s # }, 515s # { 515s # "error": "subschemas 0, 1 are not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/required" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 44 - allOf.json: "allOf simple types" - "valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 45 - allOf.json: "allOf simple types" - "mismatch one" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 30", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/maximum" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 30", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/maximum" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 46 - allOf.json: "allOf with one empty schema" - "any data is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 47 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 48 - allOf.json: "allOf with the first empty schema" - "number is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 49 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/type" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/type" 515s # }, 515s # { 515s # "error": "subschema 1 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 50 - allOf.json: "allOf with the last empty schema" - "number is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 51 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 52 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 53 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/allOf/0/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/allOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/allOf/0/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/allOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 54 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # }, 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # }, 515s # { 515s # "error": "value is not a multiple of 5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 55 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # }, 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 56 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # }, 515s # { 515s # "error": "value is not a multiple of 5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 57 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 58 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # }, 515s # { 515s # "error": "value is not a multiple of 5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/multipleOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 62 - anyOf.json: "anyOf" - "first anyOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 63 - anyOf.json: "anyOf" - "second anyOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 64 - anyOf.json: "anyOf" - "both anyOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 65 - anyOf.json: "anyOf" - "neither anyOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/type" 515s # }, 515s # { 515s # "error": "value is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/minimum" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/type" 515s # }, 515s # { 515s # "error": "value is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/minimum" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 66 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 67 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 68 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "length is greater than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/maxLength" 515s # }, 515s # { 515s # "error": "length is less than 4", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/minLength" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "length is greater than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/maxLength" 515s # }, 515s # { 515s # "error": "length is less than 4", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/minLength" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 69 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 70 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 71 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 72 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/anyOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/properties" 515s # }, 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/anyOf/1/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/properties" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/anyOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/properties" 515s # }, 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/anyOf/1/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/1/properties" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 73 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 74 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 75 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 76 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/anyOf/0/type" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/anyOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/anyOf/0/type" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf/0/anyOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/anyOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 77 - default.json: "invalid type for default" - "valid when property is specified" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 78 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 79 - default.json: "invalid string value for default" - "valid when property is specified" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 80 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s 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)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s 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)" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "/alpha", 515s # "keywordLocation": "/properties/alpha/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "/alpha", 515s # "keywordLocation": "/properties/alpha/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s 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" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 84 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 85 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 515s # "error": "value does not match", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 515s # "error": "got integer, not array", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 515s # "error": "not all properties are valid", 515s # "instanceLocation": "/definitions/foo", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "/definitions", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/$ref/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/simpleTypes/enum", 515s # "error": "value does not match", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf/1/type", 515s # "error": "got integer, not array", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/type/anyOf", 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "/definitions/foo/type", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 515s # "error": "not all properties are valid", 515s # "instanceLocation": "/definitions/foo", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties/definitions/additionalProperties", 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "/definitions", 515s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/$ref/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 86 - dependencies.json: "dependencies" - "neither" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 87 - dependencies.json: "dependencies" - "nondependant" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 88 - dependencies.json: "dependencies" - "with dependency" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 89 - dependencies.json: "dependencies" - "missing dependency" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 90 - dependencies.json: "dependencies" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 91 - dependencies.json: "dependencies" - "ignores strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 92 - dependencies.json: "dependencies" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 93 - dependencies.json: "multiple dependencies" - "neither" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 94 - dependencies.json: "multiple dependencies" - "nondependants" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 95 - dependencies.json: "multiple dependencies" - "with dependencies" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 96 - dependencies.json: "multiple dependencies" - "missing dependency" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 97 - dependencies.json: "multiple dependencies" - "missing other dependency" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 98 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing properties: foo, bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing properties: foo, bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/quux" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 99 - dependencies.json: "multiple dependencies subschema" - "valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 100 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 101 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/bar/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/bar/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 102 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/dependencies/bar/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/dependencies/bar/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 103 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/dependencies/bar/properties/bar/type" 515s # }, 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/bar/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/dependencies/bar/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/bar/properties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 104 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 105 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 106 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 107 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo\rbar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\nbar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo\rbar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\nbar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 108 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object has fewer than 4 properties", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object has fewer than 4 properties", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 109 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo\"bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo'bar/required" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo\"bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo'bar/required" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 110 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo'bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\"bar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo'bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo\"bar" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 111 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 112 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 113 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies/foo/additionalProperties" 515s # }, 515s # { 515s # "error": "not all dependencies are satisfied", 515s # "instanceLocation": "", 515s # "keywordLocation": "/dependencies" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 114 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 115 - enum.json: "simple enum validation" - "one of the enum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 116 - enum.json: "simple enum validation" - "something else is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 117 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 118 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 119 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 515s # result: { 515s # "errors": [ 515s # { 515s # "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)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "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)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 120 - enum.json: "heterogeneous enum validation" - "valid object matches" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 121 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 122 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 123 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 124 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 125 - enum.json: "enums in properties" - "both properties are valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 126 - enum.json: "enums in properties" - "wrong foo value" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/enum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/enum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 127 - enum.json: "enums in properties" - "wrong bar value" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/enum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/enum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 128 - enum.json: "enums in properties" - "missing optional property is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 129 - enum.json: "enums in properties" - "missing required property is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 130 - enum.json: "enums in properties" - "missing all properties is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/required" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 131 - enum.json: "enum with escaped characters" - "member 1 is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 132 - enum.json: "enum with escaped characters" - "member 2 is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 133 - enum.json: "enum with escaped characters" - "another string is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 134 - enum.json: "enum with false does not match 0" - "false is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 135 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 136 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 137 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 138 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 139 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 140 - enum.json: "enum with true does not match 1" - "true is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 141 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 142 - enum.json: "enum with true does not match 1" - "float one is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 143 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 144 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 145 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 146 - enum.json: "enum with 0 does not match false" - "false is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 147 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 148 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 149 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 150 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 151 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 152 - enum.json: "enum with 1 does not match true" - "true is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 153 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 154 - enum.json: "enum with 1 does not match true" - "float one is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 155 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 156 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 157 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 158 - enum.json: "nul characters in strings" - "match string with nul" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 159 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/enum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 160 - format.json: "email format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 161 - format.json: "email format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 162 - format.json: "email format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 163 - format.json: "email format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 164 - format.json: "email format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 165 - format.json: "email format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 166 - format.json: "ipv4 format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 167 - format.json: "ipv4 format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 168 - format.json: "ipv4 format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 169 - format.json: "ipv4 format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 170 - format.json: "ipv4 format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 171 - format.json: "ipv4 format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 172 - format.json: "ipv6 format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 173 - format.json: "ipv6 format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 174 - format.json: "ipv6 format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 175 - format.json: "ipv6 format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 176 - format.json: "ipv6 format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 177 - format.json: "ipv6 format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 178 - format.json: "hostname format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 179 - format.json: "hostname format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 180 - format.json: "hostname format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 181 - format.json: "hostname format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 182 - format.json: "hostname format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 183 - format.json: "hostname format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 184 - format.json: "date-time format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 185 - format.json: "date-time format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 186 - format.json: "date-time format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 187 - format.json: "date-time format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 188 - format.json: "date-time format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 189 - format.json: "date-time format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 190 - format.json: "uri format" - "all string formats ignore integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 191 - format.json: "uri format" - "all string formats ignore floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 192 - format.json: "uri format" - "all string formats ignore objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 193 - format.json: "uri format" - "all string formats ignore arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 194 - format.json: "uri format" - "all string formats ignore booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 195 - format.json: "uri format" - "all string formats ignore nulls" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s 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" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s 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" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/int/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/properties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/definitions/int/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/1/additionalProperties" 515s # }, 515s # { 515s # "error": "subschemas 0, 1 are not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/int/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/properties" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 198 - items.json: "a schema given for items" - "valid items" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 199 - items.json: "a schema given for items" - "wrong type of items" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 200 - items.json: "a schema given for items" - "ignores non-arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 201 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 202 - items.json: "an array of schemas for items" - "correct types" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 203 - items.json: "an array of schemas for items" - "wrong types" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/type" 515s # }, 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/1/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 204 - items.json: "an array of schemas for items" - "incomplete array of items" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 205 - items.json: "an array of schemas for items" - "array with additional items" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 206 - items.json: "an array of schemas for items" - "empty array" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 207 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 208 - items.json: "items and subitems" - "valid items" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 209 - items.json: "items and subitems" - "too many items" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/3", 515s # "keywordLocation": "/additionalItems" 515s # }, 515s # { 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 210 - items.json: "items and subitems" - "too many sub-items" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/0/2", 515s # "keywordLocation": "/items/0/$ref/additionalItems" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/additionalItems" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 515s # "error": "additional item not permitted", 515s # "instanceLocation": "/0/2", 515s # "keywordLocation": "/items/0/$ref/additionalItems" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 515s # "error": "subschema is not valid against all additional items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/additionalItems" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 211 - items.json: "items and subitems" - "wrong item" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/type", 515s # "error": "got object, not array", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/type", 515s # "error": "got object, not array", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 212 - items.json: "items and subitems" - "wrong sub-item" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/items", 515s # "error": "not all items are valid", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/items" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/definitions/item/items", 515s # "error": "not all items are valid", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/0/$ref/items" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 213 - items.json: "items and subitems" - "fewer items is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 214 - items.json: "nested items" - "valid nested array" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 215 - items.json: "nested items" - "nested array with invalid type" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/0/0/0/0", 515s # "keywordLocation": "/items/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0/0", 515s # "keywordLocation": "/items/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/0/0/0/0", 515s # "keywordLocation": "/items/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0/0", 515s # "keywordLocation": "/items/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 216 - items.json: "nested items" - "not deep enough" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/0/0/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/0/1/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/1", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/0/2/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/2", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/items" 515s # }, 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/1/0/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/1/0", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/1/1/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/1/1", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/1/2/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/1/2", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not array", 515s # "instanceLocation": "/0/0/0", 515s # "keywordLocation": "/items/items/items/type" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0/0", 515s # "keywordLocation": "/items/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "/0", 515s # "keywordLocation": "/items/items" 515s # }, 515s # { 515s # "error": "subschema is not valid against all items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 217 - items.json: "items with null instance elements" - "allows null elements" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 218 - items.json: "array-form items with null instance elements" - "allows null elements" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 219 - maxItems.json: "maxItems validation" - "shorter is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 220 - maxItems.json: "maxItems validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 221 - maxItems.json: "maxItems validation" - "too long is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "array has more than 2 items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "array has more than 2 items", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 222 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 223 - maxLength.json: "maxLength validation" - "shorter is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 224 - maxLength.json: "maxLength validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 225 - maxLength.json: "maxLength validation" - "too long is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "length is greater than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "length is greater than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 226 - maxLength.json: "maxLength validation" - "ignores non-strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 227 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 228 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 229 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 230 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object has more than 2 properties", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object has more than 2 properties", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 231 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 232 - maxProperties.json: "maxProperties validation" - "ignores strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 233 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 234 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 235 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object has more than 0 property", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object has more than 0 property", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maxProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 236 - maximum.json: "maximum validation" - "below the maximum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 237 - maximum.json: "maximum validation" - "boundary point is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 238 - maximum.json: "maximum validation" - "above the maximum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 239 - maximum.json: "maximum validation" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 240 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 241 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 242 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 243 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 300", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 300", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 244 - maximum.json: "maximum validation (explicit false exclusivity)" - "below the maximum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 245 - maximum.json: "maximum validation (explicit false exclusivity)" - "boundary point is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 246 - maximum.json: "maximum validation (explicit false exclusivity)" - "above the maximum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 247 - maximum.json: "maximum validation (explicit false exclusivity)" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 248 - maximum.json: "exclusiveMaximum validation" - "below the maximum is still valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 249 - maximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than or equal to 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than or equal to 3", 515s # "instanceLocation": "", 515s # "keywordLocation": "/maximum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 250 - minItems.json: "minItems validation" - "longer is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 251 - minItems.json: "minItems validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 252 - minItems.json: "minItems validation" - "too short is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 1 item", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 1 item", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minItems" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 253 - minItems.json: "minItems validation" - "ignores non-arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 254 - minLength.json: "minLength validation" - "longer is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 255 - minLength.json: "minLength validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 256 - minLength.json: "minLength validation" - "too short is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "length is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "length is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 257 - minLength.json: "minLength validation" - "ignores non-strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 258 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "length is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "length is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minLength" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 259 - minProperties.json: "minProperties validation" - "longer is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 260 - minProperties.json: "minProperties validation" - "exact length is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 261 - minProperties.json: "minProperties validation" - "too short is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object has fewer than 1 property", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object has fewer than 1 property", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 262 - minProperties.json: "minProperties validation" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 263 - minProperties.json: "minProperties validation" - "ignores strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 264 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 265 - minimum.json: "minimum validation" - "above the minimum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 266 - minimum.json: "minimum validation" - "boundary point is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 267 - minimum.json: "minimum validation" - "below the minimum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 268 - minimum.json: "minimum validation" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 269 - minimum.json: "minimum validation (explicit false exclusivity)" - "above the minimum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 270 - minimum.json: "minimum validation (explicit false exclusivity)" - "boundary point is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 271 - minimum.json: "minimum validation (explicit false exclusivity)" - "below the minimum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 272 - minimum.json: "minimum validation (explicit false exclusivity)" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 273 - minimum.json: "exclusiveMinimum validation" - "above the minimum is still valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 274 - minimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than or equal to 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than or equal to 1.1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 275 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 276 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 277 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 278 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 279 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than -2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than -2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 280 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than -2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is less than -2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/minimum" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 281 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 282 - multipleOf.json: "by int" - "int by int" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 283 - multipleOf.json: "by int" - "int by int fail" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 284 - multipleOf.json: "by int" - "ignores non-numbers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 285 - multipleOf.json: "by number" - "zero is multiple of anything" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 286 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 287 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 1.5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 1.5", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 288 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 289 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 0.0001", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is not a multiple of 0.0001", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 290 - multipleOf.json: "float division = inf" - "invalid, but naive implementations may raise an overflow error" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # }, 515s # { 515s # "error": "value is not a multiple of 0.123456789", 515s # "instanceLocation": "", 515s # "keywordLocation": "/multipleOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 291 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 292 - not.json: "not" - "allowed" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 293 - not.json: "not" - "disallowed" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 294 - not.json: "not multiple types" - "valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 295 - not.json: "not multiple types" - "mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 296 - not.json: "not multiple types" - "other mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 297 - not.json: "not more complex schema" - "match" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 298 - not.json: "not more complex schema" - "other match" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 299 - not.json: "not more complex schema" - "mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 300 - not.json: "forbidden property" - "property present" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/not" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/not" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 301 - not.json: "forbidden property" - "property absent" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 302 - not.json: "forbid everything with empty schema" - "number is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 303 - not.json: "forbid everything with empty schema" - "string is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 304 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 305 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 306 - not.json: "forbid everything with empty schema" - "null is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 307 - not.json: "forbid everything with empty schema" - "object is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 308 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 309 - not.json: "forbid everything with empty schema" - "array is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 310 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "subschema is valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/not" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 311 - not.json: "double negation" - "any value is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 312 - oneOf.json: "oneOf" - "first oneOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 313 - oneOf.json: "oneOf" - "second oneOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 314 - oneOf.json: "oneOf" - "both oneOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 315 - oneOf.json: "oneOf" - "neither oneOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/type" 515s # }, 515s # { 515s # "error": "value is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/minimum" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got number, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/type" 515s # }, 515s # { 515s # "error": "value is less than 2", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/minimum" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 316 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # }, 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "", 515s # "keywordLocation": "/type" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 317 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 318 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 319 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 320 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 321 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 322 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/oneOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/properties" 515s # }, 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/oneOf/1/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/properties" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/oneOf/0/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/properties" 515s # }, 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/oneOf/1/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/properties" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 323 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 324 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 325 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/required" 515s # }, 515s # { 515s # "error": "object is missing properties: foo, baz", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/required" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/required" 515s # }, 515s # { 515s # "error": "object is missing properties: foo, baz", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/required" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 326 - oneOf.json: "oneOf with required" - "first valid - valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 327 - oneOf.json: "oneOf with required" - "second valid - valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 328 - oneOf.json: "oneOf with required" - "both valid - invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 329 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 330 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 331 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "multiple subschemas are valid: 0, 1", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 332 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/required" 515s # }, 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/required" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "object is missing property: bar", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/required" 515s # }, 515s # { 515s # "error": "object is missing property: foo", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/1/required" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 333 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 334 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/oneOf/0/type" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/oneOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not null", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/oneOf/0/type" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf/0/oneOf" 515s # }, 515s # { 515s # "error": "no subschemas are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/oneOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s # 515s ok 335 - pattern.json: "pattern validation" - "a matching pattern is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 336 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "pattern does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/pattern" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "pattern does not match", 515s # "instanceLocation": "", 515s # "keywordLocation": "/pattern" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 337 - pattern.json: "pattern validation" - "ignores booleans" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 338 - pattern.json: "pattern validation" - "ignores integers" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 339 - pattern.json: "pattern validation" - "ignores floats" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 340 - pattern.json: "pattern validation" - "ignores objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 341 - pattern.json: "pattern validation" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 342 - pattern.json: "pattern validation" - "ignores null" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 343 - pattern.json: "pattern is not anchored" - "matches a substring" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 344 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 345 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 346 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.*o/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.*o/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 347 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.*o/type" 515s # }, 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foooooo", 515s # "keywordLocation": "/patternProperties/f.*o/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.*o/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 348 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 349 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 350 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 351 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 352 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 353 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 354 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/a", 515s # "keywordLocation": "/patternProperties/a*/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/a", 515s # "keywordLocation": "/patternProperties/a*/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 355 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 20", 515s # "instanceLocation": "/aaaa", 515s # "keywordLocation": "/patternProperties/aaa*/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "value is greater than 20", 515s # "instanceLocation": "/aaaa", 515s # "keywordLocation": "/patternProperties/aaa*/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 356 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/aaa", 515s # "keywordLocation": "/patternProperties/a*/type" 515s # }, 515s # { 515s # "error": "value is greater than 20", 515s # "instanceLocation": "/aaaa", 515s # "keywordLocation": "/patternProperties/aaa*/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/aaa", 515s # "keywordLocation": "/patternProperties/a*/type" 515s # }, 515s # { 515s # "error": "value is greater than 20", 515s # "instanceLocation": "/aaaa", 515s # "keywordLocation": "/patternProperties/aaa*/maximum" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 357 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 358 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got null, not boolean", 515s # "instanceLocation": "/a31b", 515s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got null, not boolean", 515s # "instanceLocation": "/a31b", 515s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 359 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 360 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/a_X_3", 515s # "keywordLocation": "/patternProperties/X_/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/a_X_3", 515s # "keywordLocation": "/patternProperties/X_/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 361 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 362 - properties.json: "object properties validation" - "both properties present and valid is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 363 - properties.json: "object properties validation" - "one property invalid is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not string", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not string", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 364 - properties.json: "object properties validation" - "both properties invalid is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not string", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/type" 515s # }, 515s # { 515s # "error": "got array, not integer", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not string", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 365 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 366 - properties.json: "object properties validation" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 367 - properties.json: "object properties validation" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 368 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 369 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "array has more than 3 items", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/maxItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "array has more than 3 items", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/maxItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 370 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 2 items", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.o/minItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 2 items", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/patternProperties/f.o/minItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 371 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 372 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 2 items", 515s # "instanceLocation": "/fxo", 515s # "keywordLocation": "/patternProperties/f.o/minItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "array has fewer than 2 items", 515s # "instanceLocation": "/fxo", 515s # "keywordLocation": "/patternProperties/f.o/minItems" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/patternProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 373 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 374 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 375 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not integer", 515s # "instanceLocation": "/quux", 515s # "keywordLocation": "/additionalProperties/type" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 376 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 377 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\tbar", 515s # "keywordLocation": "/properties/foo\tbar/type" 515s # }, 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\nbar", 515s # "keywordLocation": "/properties/foo\nbar/type" 515s # }, 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\fbar", 515s # "keywordLocation": "/properties/foo\fbar/type" 515s # }, 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\rbar", 515s # "keywordLocation": "/properties/foo\rbar/type" 515s # }, 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\"bar", 515s # "keywordLocation": "/properties/foo\"bar/type" 515s # }, 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\\bar", 515s # "keywordLocation": "/properties/foo\\bar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/foo\tbar", 515s # "keywordLocation": "/properties/foo\tbar/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 378 - properties.json: "properties with null valued instance properties" - "allows null values" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 379 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 380 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 381 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 382 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/__proto__", 515s # "keywordLocation": "/properties/__proto__/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got string, not number", 515s # "instanceLocation": "/__proto__", 515s # "keywordLocation": "/properties/__proto__/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 383 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/toString/length", 515s # "keywordLocation": "/properties/toString/properties/length/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "/toString", 515s # "keywordLocation": "/properties/toString/properties" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got integer, not string", 515s # "instanceLocation": "/toString/length", 515s # "keywordLocation": "/properties/toString/properties/length/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "/toString", 515s # "keywordLocation": "/properties/toString/properties" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 384 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not number", 515s # "instanceLocation": "/constructor", 515s # "keywordLocation": "/properties/constructor/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "got object, not number", 515s # "instanceLocation": "/constructor", 515s # "keywordLocation": "/properties/constructor/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 385 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s # 515s ok 386 - ref.json: "root pointer ref" - "match" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 387 - ref.json: "root pointer ref" - "recursive match" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 388 - ref.json: "root pointer ref" - "mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/additionalProperties" 515s # }, 515s # { 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/additionalProperties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 389 - ref.json: "root pointer ref" - "recursive mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/additionalProperties", 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo/bar", 515s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/additionalProperties", 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/additionalProperties", 515s # "error": "additional property not permitted", 515s # "instanceLocation": "/foo/bar", 515s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 515s # }, 515s # { 515s # "absoluteKeywordLocation": "#/additionalProperties", 515s # "error": "not all additional properties are valid", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 390 - ref.json: "relative pointer ref to object" - "match" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 391 - ref.json: "relative pointer ref to object" - "mismatch" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/properties/foo/type", 515s # "error": "got boolean, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/properties/foo/type", 515s # "error": "got boolean, not integer", 515s # "instanceLocation": "/bar", 515s # "keywordLocation": "/properties/bar/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 392 - ref.json: "relative pointer ref to array" - "match array" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 393 - ref.json: "relative pointer ref to array" - "mismatch array" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/items/0/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/1/$ref/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/items/0/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/1", 515s # "keywordLocation": "/items/1/$ref/type" 515s # }, 515s # { 515s # "error": "not all items are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/items" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 394 - ref.json: "escaped pointer ref" - "slash invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/slash", 515s # "keywordLocation": "/properties/slash/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/slash", 515s # "keywordLocation": "/properties/slash/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 395 - ref.json: "escaped pointer ref" - "tilde invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/tilde", 515s # "keywordLocation": "/properties/tilde/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/tilde", 515s # "keywordLocation": "/properties/tilde/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 396 - ref.json: "escaped pointer ref" - "percent invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/percent", 515s # "keywordLocation": "/properties/percent/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "/percent", 515s # "keywordLocation": "/properties/percent/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 397 - ref.json: "escaped pointer ref" - "slash valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 398 - ref.json: "escaped pointer ref" - "tilde valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 399 - ref.json: "escaped pointer ref" - "percent valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 400 - ref.json: "nested refs" - "nested ref valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 401 - ref.json: "nested refs" - "nested ref invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/a/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s # short-circuited result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/a/type", 515s # "error": "got string, not integer", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 515s # }, 515s # { 515s # "error": "subschema 0 is not valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/allOf" 515s # } 515s # ], 515s # "valid": false 515s # } 515s ok 1 - test passes: data is valid: false 515s 1..1 515s } 515s ok 402 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 403 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 515s # result: { 515s # "valid": true 515s # } 515s # short-circuited result: { 515s # "valid": true 515s # } 515s ok 1 - test passes: data is valid: true 515s 1..1 515s } 515s ok 404 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 515s # result: { 515s # "errors": [ 515s # { 515s # "absoluteKeywordLocation": "#/definitions/reffed/type", 515s # "error": "got string, not array", 515s # "instanceLocation": "/foo", 515s # "keywordLocation": "/properties/foo/$ref/type" 515s # }, 515s # { 515s # "error": "not all properties are valid", 515s # "instanceLocation": "", 515s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/reffed/type", 516s # "error": "got string, not array", 516s # "instanceLocation": "/foo", 516s # "keywordLocation": "/properties/foo/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 405 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 406 - ref.json: "$ref prevents a sibling id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 407 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 408 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 516s # "error": "value is less than 0", 516s # "instanceLocation": "/minLength", 516s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "/minLength", 516s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger/minimum", 516s # "error": "value is less than 0", 516s # "instanceLocation": "/minLength", 516s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "/minLength", 516s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://json-schema.org/draft-04/schema#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 409 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 410 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not string", 516s # "instanceLocation": "/$ref", 516s # "keywordLocation": "/properties/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not string", 516s # "instanceLocation": "/$ref", 516s # "keywordLocation": "/properties/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 411 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 412 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/is-string/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "/$ref", 516s # "keywordLocation": "/properties/$ref/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/is-string/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "/$ref", 516s # "keywordLocation": "/properties/$ref/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 413 - ref.json: "Recursive references between schemas" - "valid tree" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 414 - ref.json: "Recursive references between schemas" - "invalid tree" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0/subtree/nodes/0", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/nodes/0/subtree/nodes", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0/subtree", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/nodes", 516s # "keywordLocation": "/properties/nodes/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0/subtree/nodes/0", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/nodes/0/subtree/nodes", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0/subtree", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "/nodes/0", 516s # "keywordLocation": "/properties/nodes/items/$ref/properties" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/nodes", 516s # "keywordLocation": "/properties/nodes/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 415 - ref.json: "refs with quote" - "object with numbers is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 416 - ref.json: "refs with quote" - "object with strings is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "/foo\"bar", 516s # "keywordLocation": "/properties/foo\"bar/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "/foo\"bar", 516s # "keywordLocation": "/properties/foo\"bar/$ref/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 417 - ref.json: "Location-independent identifier" - "match" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 418 - ref.json: "Location-independent identifier" - "mismatch" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/A/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/A/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 419 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 420 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s 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" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "value does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/enum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "value does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/enum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 422 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 423 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 424 - ref.json: "id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 425 - ref.json: "id with file URI still resolves pointers - *nix" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 426 - ref.json: "id with file URI still resolves pointers - *nix" - "non-number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 427 - ref.json: "id with file URI still resolves pointers - windows" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 428 - ref.json: "id with file URI still resolves pointers - windows" - "non-number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 429 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 430 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions//definitions//type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions//definitions//type", 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf/0/$ref/type" 516s # }, 516s # { 516s # "error": "subschema 0 is not valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/allOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 431 - refRemote.json: "remote ref" - "remote ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 432 - refRemote.json: "remote ref" - "remote ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 433 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 434 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 435 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 436 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 437 - refRemote.json: "base URI change" - "base URI change ref valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 438 - refRemote.json: "base URI change" - "base URI change ref invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/0/0", 516s # "keywordLocation": "/items/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/0", 516s # "keywordLocation": "/items/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/items" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/0/0", 516s # "keywordLocation": "/items/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/0", 516s # "keywordLocation": "/items/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/items" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 439 - refRemote.json: "base URI change - change folder" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 440 - refRemote.json: "base URI change - change folder" - "string is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/list/0", 516s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/list", 516s # "keywordLocation": "/properties/list/$ref/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/list/0", 516s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/list", 516s # "keywordLocation": "/properties/list/$ref/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 441 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 442 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/list/0", 516s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/list", 516s # "keywordLocation": "/properties/list/$ref/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "/list/0", 516s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 516s # "error": "subschema is not valid against all items", 516s # "instanceLocation": "/list", 516s # "keywordLocation": "/properties/list/$ref/items" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 443 - refRemote.json: "root ref in remote ref" - "string is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 444 - refRemote.json: "root ref in remote ref" - "null is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 445 - refRemote.json: "root ref in remote ref" - "object is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 516s # "error": "got object, not null", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 516s # "error": "got object, not string", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 516s # "error": "no subschemas are valid", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 516s # "error": "got object, not null", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 516s # "error": "got object, not string", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 516s # "error": "no subschemas are valid", 516s # "instanceLocation": "/name", 516s # "keywordLocation": "/properties/name/$ref/anyOf" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/properties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 446 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true # 516s 1..1 516s } 516s ok 447 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierDraft4.json#/definitions/A/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierDraft4.json#/definitions/A/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/$ref/$ref/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 448 - required.json: "required validation" - "present required property is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 449 - required.json: "required validation" - "non-present required property is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing property: foo", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing property: foo", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 450 - required.json: "required validation" - "ignores arrays" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 451 - required.json: "required validation" - "ignores strings" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 452 - required.json: "required validation" - "ignores other non-objects" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 453 - required.json: "required default validation" - "not required by default" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 454 - required.json: "required with escaped characters" - "object with all properties present is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 455 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 456 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 457 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 458 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, toString, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, toString, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 459 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: toString, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: toString, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 460 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, constructor", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 461 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, toString", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "object is missing properties: __proto__, toString", 516s # "instanceLocation": "", 516s # "keywordLocation": "/required" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 462 - required.json: "required properties whose names are Javascript object property names" - "all present" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s # 516s ok 463 - type.json: "integer type matches integers" - "an integer is an integer" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 464 - type.json: "integer type matches integers" - "a float is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 465 - type.json: "integer type matches integers" - "a string is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 466 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got string, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 467 - type.json: "integer type matches integers" - "an object is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got object, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got object, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 468 - type.json: "integer type matches integers" - "an array is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got array, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got array, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 469 - type.json: "integer type matches integers" - "a boolean is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got boolean, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got boolean, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 470 - type.json: "integer type matches integers" - "null is not an integer" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got null, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got null, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 471 - type.json: "number type matches numbers" - "an integer is a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 472 - type.json: "number type matches numbers" - "a float with zero fractional part is a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 473 - type.json: "number type matches numbers" - "a float is a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 474 - type.json: "number type matches numbers" - "a string is not a number" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 475 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 476 - type.json: "number type matches numbers" - "an object is not a number" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 477 - type.json: "number type matches numbers" - "an array is not a number" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 478 - type.json: "number type matches numbers" - "a boolean is not a number" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 479 - type.json: "number type matches numbers" - "null is not a number" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not number", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 480 - type.json: "string type matches strings" - "1 is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 481 - type.json: "string type matches strings" - "a float is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got number, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got number, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 482 - type.json: "string type matches strings" - "a string is a string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 483 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 484 - type.json: "string type matches strings" - "an empty string is still a string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 485 - type.json: "string type matches strings" - "an object is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got object, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got object, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 486 - type.json: "string type matches strings" - "an array is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got array, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got array, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 487 - type.json: "string type matches strings" - "a boolean is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got boolean, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got boolean, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 488 - type.json: "string type matches strings" - "null is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got null, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got null, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 489 - type.json: "object type matches objects" - "an integer is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 490 - type.json: "object type matches objects" - "a float is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 491 - type.json: "object type matches objects" - "a string is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 492 - type.json: "object type matches objects" - "an object is an object" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 493 - type.json: "object type matches objects" - "an array is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 494 - type.json: "object type matches objects" - "a boolean is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 495 - type.json: "object type matches objects" - "null is not an object" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 496 - type.json: "array type matches arrays" - "an integer is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 497 - type.json: "array type matches arrays" - "a float is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 498 - type.json: "array type matches arrays" - "a string is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 499 - type.json: "array type matches arrays" - "an object is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 500 - type.json: "array type matches arrays" - "an array is an array" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 501 - type.json: "array type matches arrays" - "a boolean is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 502 - type.json: "array type matches arrays" - "null is not an array" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not array", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 503 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 504 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 505 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 506 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 507 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 508 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 509 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 510 - type.json: "boolean type matches booleans" - "true is a boolean" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 511 - type.json: "boolean type matches booleans" - "false is a boolean" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 512 - type.json: "boolean type matches booleans" - "null is not a boolean" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not boolean", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 513 - type.json: "null type matches only the null object" - "an integer is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 514 - type.json: "null type matches only the null object" - "a float is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 515 - type.json: "null type matches only the null object" - "zero is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 516 - type.json: "null type matches only the null object" - "a string is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 517 - type.json: "null type matches only the null object" - "an empty string is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 518 - type.json: "null type matches only the null object" - "an object is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 519 - type.json: "null type matches only the null object" - "an array is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 520 - type.json: "null type matches only the null object" - "true is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 521 - type.json: "null type matches only the null object" - "false is not null" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 522 - type.json: "null type matches only the null object" - "null is null" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 523 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 524 - type.json: "multiple types can be specified in an array" - "a string is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 525 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got number, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 526 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got object, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 527 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got array, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 528 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got boolean, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 529 - type.json: "multiple types can be specified in an array" - "null is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not one of integer, string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 530 - type.json: "type as array with one item" - "string is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 531 - type.json: "type as array with one item" - "number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 532 - type.json: "type: array or object" - "array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 533 - type.json: "type: array or object" - "object is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 534 - type.json: "type: array or object" - "number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 535 - type.json: "type: array or object" - "string is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 536 - type.json: "type: array or object" - "null is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got null, not one of array, object", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 537 - type.json: "type: array, object or null" - "array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 538 - type.json: "type: array, object or null" - "object is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 539 - type.json: "type: array, object or null" - "null is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 540 - type.json: "type: array, object or null" - "number is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of array, object, null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got integer, not one of array, object, null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 541 - type.json: "type: array, object or null" - "string is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not one of array, object, null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not one of array, object, null", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 542 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 543 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 544 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 545 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 546 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 547 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 548 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 549 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 550 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 551 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 552 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 553 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 554 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 555 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 556 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 557 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 2 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 558 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 559 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 560 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 561 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 562 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 563 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 564 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 565 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 4 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 4 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 566 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 567 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 568 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 569 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 570 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 571 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 572 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 573 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 574 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 575 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 576 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 2 and 3 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 2 and 3 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 577 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 2 and 3 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 2 and 3 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 578 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 579 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 580 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 581 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "items at indices 0 and 1 are not unique", 516s # "instanceLocation": "", 516s # "keywordLocation": "/uniqueItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 582 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional item not permitted", 516s # "instanceLocation": "/2", 516s # "keywordLocation": "/additionalItems" 516s # }, 516s # { 516s # "error": "subschema is not valid against all additional items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional item not permitted", 516s # "instanceLocation": "/2", 516s # "keywordLocation": "/additionalItems" 516s # }, 516s # { 516s # "error": "subschema is not valid against all additional items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 583 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 584 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 585 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 586 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 587 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 588 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 589 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 590 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 591 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 592 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 593 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 594 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 595 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 596 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 597 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 598 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 599 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 600 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 601 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 602 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 603 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 604 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 605 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 606 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 607 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 608 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 609 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 610 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional item not permitted", 516s # "instanceLocation": "/2", 516s # "keywordLocation": "/additionalItems" 516s # }, 516s # { 516s # "error": "subschema is not valid against all additional items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional item not permitted", 516s # "instanceLocation": "/2", 516s # "keywordLocation": "/additionalItems" 516s # }, 516s # { 516s # "error": "subschema is not valid against all additional items", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalItems" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 611 - optional/bignum.json: "integer" - "a bignum is an integer" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "12345678910111213141516171819202122232425262728293031" 516s # schema: "{\"type\":\"integer\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s ok 612 - optional/bignum.json: "integer" - "a negative bignum is an integer" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "-12345678910111213141516171819202122232425262728293031" 516s # schema: "{\"type\":\"integer\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s ok 613 - optional/bignum.json: "number" - "a bignum is a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 614 - optional/bignum.json: "number" - "a negative bignum is a number" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 615 - optional/bignum.json: "string" - "a bignum is not a string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got number, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 516s # "error": "got number, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 616 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 617 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 516s # "instanceLocation": "", 516s # "keywordLocation": "/maximum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 516s # "instanceLocation": "", 516s # "keywordLocation": "/maximum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 618 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 619 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 516s # "instanceLocation": "", 516s # "keywordLocation": "/minimum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 516s # "instanceLocation": "", 516s # "keywordLocation": "/minimum" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 620 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 621 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 622 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 623 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 624 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 625 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 626 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 627 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 628 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true # 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "\"߀\"" 516s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "\"߀\"" 516s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false # 516s 1..1 516s } 516s 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" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "\"߀\"" 516s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "\"߀\"" 516s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s ok 634 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true # 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "\"é\"" 516s # schema: "{\"pattern\":\"^\\\\w$\",\"type\":\"string\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false # 516s 1..1 516s } 516s 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" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "\"é\"" 516s # schema: "{\"pattern\":\"^\\\\W$\",\"type\":\"string\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s ok 638 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 639 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 640 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 641 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 642 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 643 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected true; got false 516s # data: "\"\"" 516s # schema: "{\"pattern\":\"^\\\\s$\",\"type\":\"string\"}" 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s 1..1 516s } 516s ok 644 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 645 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 646 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 647 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 648 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 649 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 650 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 651 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 652 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 653 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "\"\"" 516s # schema: "{\"pattern\":\"^\\\\S$\",\"type\":\"string\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s ok 655 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 656 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 657 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 658 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 659 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 660 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 661 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 662 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 663 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 664 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # 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.\"" 516s # schema: "{\"pattern\":\"\\\\wcole\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # 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.\"" 516s # schema: "{\"pattern\":\"\\\\wcole\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s ok 667 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 668 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 669 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 670 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 671 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 672 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "\"৪২\"" 516s # schema: "{\"pattern\":\"^\\\\d+$\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s ok 674 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 675 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 676 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 677 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 678 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 679 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 680 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/L'ÉCOLE", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/L'ÉCOLE", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 681 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "{\"l'école\":\"pas de vraie vie\"}" 516s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":{}},\"type\":\"object\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "{\"l'école\":\"pas de vraie vie\"}" 516s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":{}},\"type\":\"object\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s ok 684 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/L'ÉCOLE", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/L'ÉCOLE", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 685 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/l'école", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/l'école", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 686 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/l'école", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/l'école", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 687 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 688 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 689 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/-%#", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/-%#", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s 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" 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s not ok 1 - evaluation result is incorrect # 516s # Failed test (with amnesty) 'evaluation result is incorrect' 516s # at t/zzz-acceptance-draft4.t line 49. 516s # expected false; got true 516s # data: "{\"৪২\":\"khajit has wares if you have coin\"}" 516s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"^\\\\d+$\":{}},\"type\":\"object\"}" 516s # result: { 516s # "valid": true 516s # } 516s 1..1 516s } 516s ok 691 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 692 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/-%#", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "additional property not permitted", 516s # "instanceLocation": "/-%#", 516s # "keywordLocation": "/additionalProperties" 516s # }, 516s # { 516s # "error": "not all additional properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/additionalProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 693 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s # 516s ok 694 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s # 516s ok 695 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 696 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 697 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 516s # "error": "value does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf/0/$ref/enum" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf/1/$ref/type" 516s # }, 516s # { 516s # "error": "no subschemas are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 516s # "error": "value does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf/0/$ref/enum" 516s # }, 516s # { 516s # "absoluteKeywordLocation": "https://localhost:1234/my_identifier.json#/type", 516s # "error": "got integer, not string", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf/1/$ref/type" 516s # }, 516s # { 516s # "error": "no subschemas are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/anyOf" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s ok 698 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 699 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 700 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 701 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 702 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 703 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 704 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "pattern does not match", 516s # "instanceLocation": "", 516s # "keywordLocation": "/pattern" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 705 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 706 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 707 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 516s # result: { 516s # "valid": true 516s # } 516s # short-circuited result: { 516s # "valid": true 516s # } 516s ok 1 - test passes: data is valid: true 516s 1..1 516s } 516s ok 708 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not integer", 516s # "instanceLocation": "/🐲", 516s # "keywordLocation": "/patternProperties/^🐲*$/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/patternProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not integer", 516s # "instanceLocation": "/🐲", 516s # "keywordLocation": "/patternProperties/^🐲*$/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/patternProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s ok 709 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 516s # result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not integer", 516s # "instanceLocation": "/🐲🐲", 516s # "keywordLocation": "/patternProperties/^🐲*$/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/patternProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "error": "got string, not integer", 516s # "instanceLocation": "/🐲🐲", 516s # "keywordLocation": "/patternProperties/^🐲*$/type" 516s # }, 516s # { 516s # "error": "not all properties are valid", 516s # "instanceLocation": "", 516s # "keywordLocation": "/patternProperties" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s 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" { 516s # result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s # short-circuited result: { 516s # "errors": [ 516s # { 516s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 516s # "error": "got number, not integer", 516s # "instanceLocation": "", 516s # "keywordLocation": "/type" 516s # } 516s # ], 516s # "valid": false 516s # } 516s ok 1 - test passes: data is valid: false 516s 1..1 516s } 516s # 516s # 516s # generated with: Test::JSON::Schema::Acceptance 1.026 516s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 516s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 516s # specification version: draft4 516s # optional tests included: yes 516s # skipping directory: optional/format 516s # 516s # filename pass todo-fail fail 516s # --------------------------------------------------------------- 516s # additionalItems.json 18 0 0 516s # additionalProperties.json 16 0 0 516s # allOf.json 27 0 0 516s # anyOf.json 15 0 0 516s # default.json 7 0 0 516s # definitions.json 2 0 0 516s # dependencies.json 29 0 0 516s # enum.json 45 0 0 516s # format.json 36 0 0 516s # infinite-loop-detection.json 2 0 0 516s # items.json 21 0 0 516s # maxItems.json 4 0 0 516s # maxLength.json 5 0 0 516s # maxProperties.json 8 0 0 516s # maximum.json 14 0 0 516s # minItems.json 4 0 0 516s # minLength.json 5 0 0 516s # minProperties.json 6 0 0 516s # minimum.json 17 0 0 516s # multipleOf.json 10 0 0 516s # not.json 20 0 0 516s # oneOf.json 23 0 0 516s # pattern.json 9 0 0 516s # patternProperties.json 18 0 0 516s # properties.json 24 0 0 516s # ref.json 45 0 0 516s # refRemote.json 17 0 0 516s # required.json 15 0 0 516s # type.json 79 0 0 516s # uniqueItems.json 69 0 0 516s # optional/bignum.json 7 2 0 516s # optional/ecmascript-regex.json 60 14 0 516s # optional/float-overflow.json 1 0 0 516s # optional/id.json 3 0 0 516s # optional/non-bmp-regex.json 12 0 0 516s # optional/zeroTerminatedFloats.json 1 0 0 516s # --------------------------------------------------------------- 516s # TOTAL 694 16 0 516s # 516s # Congratulations, all non-optional tests are passing! 516s # 516s ok 711 - no leaks in the main evaluator object 516s ok 712 - no leaks in the short-circuiting evaluator object 516s 1..712 516s ok 517s t/zzz-acceptance-draft6-format.t ........ 517s # AUTHOR_TESTING: 517s # AUTOMATED_TESTING: 1 517s # EXTENDED_TESTING: 517s # NO_TODO: 517s # TEST_DIR: 517s # NO_SHORT_CIRCUIT: 517s # 517s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6/optional/format against draft6... 517s # 517s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid date-time", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 26 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 27 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 28 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 29 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 30 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 31 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 32 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 33 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 34 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 35 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 36 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 37 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 38 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 39 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 40 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid email", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 41 - hostname.json: "validation of host names" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 42 - hostname.json: "validation of host names" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 43 - hostname.json: "validation of host names" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 44 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 45 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 46 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 47 - hostname.json: "validation of host names" - "a valid host name" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 48 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 49 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 50 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 51 - hostname.json: "validation of host names" - "a host name with a component too long" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 52 - hostname.json: "validation of host names" - "starts with hyphen" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 53 - hostname.json: "validation of host names" - "ends with hyphen" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 54 - hostname.json: "validation of host names" - "starts with underscore" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 55 - hostname.json: "validation of host names" - "ends with underscore" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 56 - hostname.json: "validation of host names" - "contains underscore" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 57 - hostname.json: "validation of host names" - "maximum label length" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 58 - hostname.json: "validation of host names" - "exceeds maximum label length" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 59 - hostname.json: "validation of host names" - "single label" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected true; got false 517s # data: "\"hostname\"" 517s # schema: "{\"format\":\"hostname\"}" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s 1..1 517s } 517s ok 60 - hostname.json: "validation of host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected true; got false 517s # data: "\"host-name\"" 517s # schema: "{\"format\":\"hostname\"}" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s 1..1 517s } 517s ok 61 - hostname.json: "validation of host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected true; got false 517s # data: "\"h0stn4me\"" 517s # schema: "{\"format\":\"hostname\"}" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s 1..1 517s } 517s ok 62 - hostname.json: "validation of host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected true; got false 517s # data: "\"hostnam3\"" 517s # schema: "{\"format\":\"hostname\"}" 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid hostname", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s 1..1 517s } 517s # 517s ok 63 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 64 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 65 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 66 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 67 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 68 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 69 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 70 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 71 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 72 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 73 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 74 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 75 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 76 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 77 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 78 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv4", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 79 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 80 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 81 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 82 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 83 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 84 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 85 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 86 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 87 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 88 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 89 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 90 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 91 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 92 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 93 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 94 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 95 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 96 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 97 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 98 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 99 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 100 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 101 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 102 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 103 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 104 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 105 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 106 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 107 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 108 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 109 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 110 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 111 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 112 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 113 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 114 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 115 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 116 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 117 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 118 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid ipv6", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 119 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 120 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 121 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 122 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 123 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 124 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 125 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 126 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 127 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 128 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 129 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 130 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 131 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 132 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 133 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 134 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 135 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 136 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 137 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 138 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 139 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 140 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 141 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 142 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 143 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 144 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 145 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 146 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 147 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 148 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 149 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 150 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 151 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 152 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 153 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 154 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 155 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 156 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid json-pointer", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 157 - unknown.json: "unknown format" - "unknown formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 158 - unknown.json: "unknown format" - "unknown formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 159 - unknown.json: "unknown format" - "unknown formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 160 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 161 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 162 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 163 - unknown.json: "unknown format" - "unknown formats ignore strings" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s # 517s ok 164 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 165 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 166 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 167 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 168 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 169 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 170 - uri-reference.json: "validation of URI References" - "a valid URI" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 171 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 172 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 173 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri-reference", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri-reference", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 174 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 175 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 176 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri-reference", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri-reference", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s # 517s ok 177 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 178 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 179 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 180 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 181 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 182 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 183 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 184 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected false; got true 517s # data: "\"http://example.com/dictionary/{term:1}/{term\"" 517s # schema: "{\"format\":\"uri-template\"}" 517s # result: { 517s # "valid": true 517s # } 517s 1..1 517s } 517s ok 185 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s ok 186 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true # 517s 1..1 517s } 517s # 517s ok 187 - uri.json: "validation of URIs" - "all string formats ignore integers" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 188 - uri.json: "validation of URIs" - "all string formats ignore floats" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 189 - uri.json: "validation of URIs" - "all string formats ignore objects" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 190 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 191 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 192 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 193 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 194 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 195 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 196 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 197 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 198 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 199 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 200 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 201 - uri.json: "validation of URIs" - "a valid URL " { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 202 - uri.json: "validation of URIs" - "a valid mailto URI" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 203 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 204 - uri.json: "validation of URIs" - "a valid tel URI" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 205 - uri.json: "validation of URIs" - "a valid URN" { 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s ok 1 - test passes: data is valid: true 517s 1..1 517s } 517s ok 206 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 207 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 208 - uri.json: "validation of URIs" - "an invalid URI" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 209 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 210 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 211 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 517s # result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s # short-circuited result: { 517s # "errors": [ 517s # { 517s # "error": "not a valid uri", 517s # "instanceLocation": "", 517s # "keywordLocation": "/format" 517s # } 517s # ], 517s # "valid": false 517s # } 517s ok 1 - test passes: data is valid: false 517s 1..1 517s } 517s ok 212 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 517s # result: { 517s # "valid": true 517s # } 517s # short-circuited result: { 517s # "valid": true 517s # } 517s not ok 1 - evaluation result is incorrect # 517s # Failed test (with amnesty) 'evaluation result is incorrect' 517s # at t/zzz-acceptance-draft6-format.t line 66. 517s # expected false; got true 517s # data: "\"bar,baz:foo\"" 517s # schema: "{\"format\":\"uri\"}" 517s # result: { 517s # "valid": true 517s # } 517s 1..1 517s } 517s # 517s # 517s # generated with: Test::JSON::Schema::Acceptance 1.026 517s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 517s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 517s # specification version: draft6 517s # using custom test directory: /optional/format 517s # optional tests included: yes 517s # 517s # filename pass todo-fail fail 517s # --------------------------------------------------------------- 517s # date-time.json 25 0 0 517s # email.json 15 0 0 517s # hostname.json 18 4 0 517s # ipv4.json 16 0 0 517s # ipv6.json 40 0 0 517s # json-pointer.json 38 0 0 517s # unknown.json 7 0 0 517s # uri-reference.json 13 0 0 517s # uri-template.json 9 1 0 517s # uri.json 25 1 0 517s # --------------------------------------------------------------- 517s # TOTAL 206 6 0 517s # 517s # Congratulations, all non-optional tests are passing! 517s # 517s ok 213 - no leaks in the main evaluator object 517s ok 214 - no leaks in the short-circuiting evaluator object 517s 1..214 517s ok 523s t/zzz-acceptance-draft6.t ............... 523s # AUTHOR_TESTING: 523s # AUTOMATED_TESTING: 1 523s # EXTENDED_TESTING: 523s # NO_TODO: 523s # TEST_DIR: 523s # NO_SHORT_CIRCUIT: 523s # 523s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 523s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft6 against draft6... 523s # 523s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/type" 523s # }, 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/élmény", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/élmény", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 37 - allOf.json: "allOf" - "allOf" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 38 - allOf.json: "allOf" - "mismatch second" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 39 - allOf.json: "allOf" - "mismatch first" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/required" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/required" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 40 - allOf.json: "allOf" - "wrong type" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/properties" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/properties" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 41 - allOf.json: "allOf with base schema" - "valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: baz", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/required" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: baz", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/required" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "object is missing property: baz", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/required" 523s # }, 523s # { 523s # "error": "subschemas 0, 1 are not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/required" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 46 - allOf.json: "allOf simple types" - "valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 30", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/maximum" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 30", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/maximum" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1" 523s # }, 523s # { 523s # "error": "subschemas 0, 1 are not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/type" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/type" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/allOf/0/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/allOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/allOf/0/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/allOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/multipleOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/type" 523s # }, 523s # { 523s # "error": "value is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/minimum" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/type" 523s # }, 523s # { 523s # "error": "value is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/minimum" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/maxLength" 523s # }, 523s # { 523s # "error": "length is less than 4", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/minLength" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/maxLength" 523s # }, 523s # { 523s # "error": "length is less than 4", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/minLength" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/anyOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/properties" 523s # }, 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/anyOf/1/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/properties" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/anyOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/properties" 523s # }, 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/anyOf/1/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/properties" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/anyOf/0/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/anyOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/anyOf/0/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/anyOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 103 - const.json: "const validation" - "same value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 104 - const.json: "const validation" - "another value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 105 - const.json: "const validation" - "another type is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 106 - const.json: "const with object" - "same object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 108 - const.json: "const with object" - "another object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 109 - const.json: "const with object" - "another type is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 110 - const.json: "const with array" - "same array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 111 - const.json: "const with array" - "another array item is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs object)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs object)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 113 - const.json: "const with null" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 114 - const.json: "const with null" - "not null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/const" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "value is less than 5", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/minimum" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/contains/const" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "value is not a multiple of 3", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/contains/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against any item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/contains" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/multipleOf" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 171 - contains.json: "contains with null instance elements" - "allows null items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 172 - default.json: "invalid type for default" - "valid when property is specified" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 173 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 174 - default.json: "invalid string value for default" - "valid when property is specified" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 175 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s 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)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s 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)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 3", 523s # "instanceLocation": "/alpha", 523s # "keywordLocation": "/properties/alpha/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 3", 523s # "instanceLocation": "/alpha", 523s # "keywordLocation": "/properties/alpha/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s 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" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 179 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 180 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 523s # "error": "value does not match", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 523s # "error": "got integer, not array", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/definitions/foo", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "/definitions", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/simpleTypes/enum", 523s # "error": "value does not match", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf/1/type", 523s # "error": "got integer, not array", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/type/anyOf", 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "/definitions/foo/type", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/definitions/foo", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties/definitions/additionalProperties", 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "/definitions", 523s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 181 - dependencies.json: "dependencies" - "neither" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 182 - dependencies.json: "dependencies" - "nondependant" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 183 - dependencies.json: "dependencies" - "with dependency" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 184 - dependencies.json: "dependencies" - "missing dependency" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 185 - dependencies.json: "dependencies" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 186 - dependencies.json: "dependencies" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 187 - dependencies.json: "dependencies" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 188 - dependencies.json: "dependencies with empty array" - "empty object" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 189 - dependencies.json: "dependencies with empty array" - "object with one property" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 190 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 191 - dependencies.json: "multiple dependencies" - "neither" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 192 - dependencies.json: "multiple dependencies" - "nondependants" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 193 - dependencies.json: "multiple dependencies" - "with dependencies" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 194 - dependencies.json: "multiple dependencies" - "missing dependency" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 195 - dependencies.json: "multiple dependencies" - "missing other dependency" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 196 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: foo, bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: foo, bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/quux" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 197 - dependencies.json: "multiple dependencies subschema" - "valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 198 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 199 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/bar/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/bar/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 200 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/dependencies/bar/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/dependencies/bar/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/dependencies/bar/properties/bar/type" 523s # }, 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/bar/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/dependencies/bar/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar/properties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 202 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 203 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 206 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 207 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 209 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo\rbar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\nbar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo\rbar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\nbar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 210 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 4 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 4 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo\"bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo'bar/required" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo\"bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo'bar/required" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo'bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\"bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo'bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo\"bar" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 213 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 214 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies/foo/additionalProperties" 523s # }, 523s # { 523s # "error": "not all dependencies are satisfied", 523s # "instanceLocation": "", 523s # "keywordLocation": "/dependencies" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 217 - enum.json: "simple enum validation" - "one of the enum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 218 - enum.json: "simple enum validation" - "something else is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 219 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 220 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 221 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 523s # result: { 523s # "errors": [ 523s # { 523s # "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)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "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)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 222 - enum.json: "heterogeneous enum validation" - "valid object matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 223 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 224 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 225 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 227 - enum.json: "enums in properties" - "both properties are valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 228 - enum.json: "enums in properties" - "wrong foo value" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/enum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/enum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 229 - enum.json: "enums in properties" - "wrong bar value" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/enum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/enum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 230 - enum.json: "enums in properties" - "missing optional property is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 231 - enum.json: "enums in properties" - "missing required property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 232 - enum.json: "enums in properties" - "missing all properties is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 233 - enum.json: "enum with escaped characters" - "member 1 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 234 - enum.json: "enum with escaped characters" - "member 2 is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 235 - enum.json: "enum with escaped characters" - "another string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 236 - enum.json: "enum with false does not match 0" - "false is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 237 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 238 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 239 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 240 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 241 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 242 - enum.json: "enum with true does not match 1" - "true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 243 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 244 - enum.json: "enum with true does not match 1" - "float one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 245 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 246 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 247 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 248 - enum.json: "enum with 0 does not match false" - "false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 249 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 250 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 251 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 252 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 253 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 254 - enum.json: "enum with 1 does not match true" - "true is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 255 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 256 - enum.json: "enum with 1 does not match true" - "float one is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 257 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 258 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 259 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 260 - enum.json: "nul characters in strings" - "match string with nul" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 261 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 262 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 263 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 266 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 267 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 270 - format.json: "email format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 271 - format.json: "email format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 272 - format.json: "email format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 273 - format.json: "email format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 274 - format.json: "email format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 275 - format.json: "email format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 276 - format.json: "ipv4 format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 277 - format.json: "ipv4 format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 278 - format.json: "ipv4 format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 279 - format.json: "ipv4 format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 280 - format.json: "ipv4 format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 281 - format.json: "ipv4 format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 282 - format.json: "ipv6 format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 283 - format.json: "ipv6 format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 284 - format.json: "ipv6 format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 285 - format.json: "ipv6 format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 286 - format.json: "ipv6 format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 287 - format.json: "ipv6 format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 288 - format.json: "hostname format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 289 - format.json: "hostname format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 290 - format.json: "hostname format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 291 - format.json: "hostname format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 292 - format.json: "hostname format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 293 - format.json: "hostname format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 294 - format.json: "date-time format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 295 - format.json: "date-time format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 296 - format.json: "date-time format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 297 - format.json: "date-time format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 298 - format.json: "date-time format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 299 - format.json: "date-time format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 300 - format.json: "json-pointer format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 301 - format.json: "json-pointer format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 302 - format.json: "json-pointer format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 303 - format.json: "json-pointer format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 304 - format.json: "json-pointer format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 305 - format.json: "json-pointer format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 306 - format.json: "uri format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 307 - format.json: "uri format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 308 - format.json: "uri format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 309 - format.json: "uri format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 310 - format.json: "uri format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 311 - format.json: "uri format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 312 - format.json: "uri-reference format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 313 - format.json: "uri-reference format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 314 - format.json: "uri-reference format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 315 - format.json: "uri-reference format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 316 - format.json: "uri-reference format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 317 - format.json: "uri-reference format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 318 - format.json: "uri-template format" - "all string formats ignore integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 319 - format.json: "uri-template format" - "all string formats ignore floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 320 - format.json: "uri-template format" - "all string formats ignore objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 321 - format.json: "uri-template format" - "all string formats ignore arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 322 - format.json: "uri-template format" - "all string formats ignore booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 323 - format.json: "uri-template format" - "all string formats ignore nulls" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s 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" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s 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" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/int/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/int/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/1/additionalProperties" 523s # }, 523s # { 523s # "error": "subschemas 0, 1 are not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/int/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/properties" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 326 - items.json: "a schema given for items" - "valid items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 327 - items.json: "a schema given for items" - "wrong type of items" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 328 - items.json: "a schema given for items" - "ignores non-arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 329 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 330 - items.json: "an array of schemas for items" - "correct types" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 331 - items.json: "an array of schemas for items" - "wrong types" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/type" 523s # }, 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/1/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 332 - items.json: "an array of schemas for items" - "incomplete array of items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 333 - items.json: "an array of schemas for items" - "array with additional items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 334 - items.json: "an array of schemas for items" - "empty array" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 335 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 336 - items.json: "items with boolean schema (true)" - "any array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 337 - items.json: "items with boolean schema (true)" - "empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 338 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items" 523s # }, 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items" 523s # }, 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 339 - items.json: "items with boolean schema (false)" - "empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 340 - items.json: "items with boolean schemas" - "array with one item is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 341 - items.json: "items with boolean schemas" - "array with two items is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/1" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "item not permitted", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/1" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 342 - items.json: "items with boolean schemas" - "empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 343 - items.json: "items and subitems" - "valid items" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 344 - items.json: "items and subitems" - "too many items" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/3", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 345 - items.json: "items and subitems" - "too many sub-items" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/0/2", 523s # "keywordLocation": "/items/0/$ref/additionalItems" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/additionalItems" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/0/2", 523s # "keywordLocation": "/items/0/$ref/additionalItems" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/additionalItems" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 346 - items.json: "items and subitems" - "wrong item" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/type", 523s # "error": "got object, not array", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/type", 523s # "error": "got object, not array", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 347 - items.json: "items and subitems" - "wrong sub-item" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/items", 523s # "error": "not all items are valid", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/items" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/item/items", 523s # "error": "not all items are valid", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/0/$ref/items" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 348 - items.json: "items and subitems" - "fewer items is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 349 - items.json: "nested items" - "valid nested array" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 350 - items.json: "nested items" - "nested array with invalid type" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/0/0/0/0", 523s # "keywordLocation": "/items/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0/0", 523s # "keywordLocation": "/items/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/0/0/0/0", 523s # "keywordLocation": "/items/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0/0", 523s # "keywordLocation": "/items/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 351 - items.json: "nested items" - "not deep enough" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/0/0/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/0/1/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/1", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/0/2/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/2", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/1/0/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/1/0", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/1/1/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/1/1", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/1/2/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/1/2", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "/0/0/0", 523s # "keywordLocation": "/items/items/items/type" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 352 - items.json: "single-form items with null instance elements" - "allows null elements" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 353 - items.json: "array-form items with null instance elements" - "allows null elements" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 354 - maxItems.json: "maxItems validation" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 355 - maxItems.json: "maxItems validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 356 - maxItems.json: "maxItems validation" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 2 items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 2 items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 357 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 358 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 359 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 2 items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 2 items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 360 - maxLength.json: "maxLength validation" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 361 - maxLength.json: "maxLength validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 362 - maxLength.json: "maxLength validation" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 363 - maxLength.json: "maxLength validation" - "ignores non-strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 364 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 365 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 366 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 367 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 368 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 369 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 2 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 2 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 370 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 371 - maxProperties.json: "maxProperties validation" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 372 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 373 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 374 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 2 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 2 properties", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 375 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 376 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 0 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has more than 0 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maxProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 377 - maximum.json: "maximum validation" - "below the maximum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 378 - maximum.json: "maximum validation" - "boundary point is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 379 - maximum.json: "maximum validation" - "above the maximum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 3", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 380 - maximum.json: "maximum validation" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 381 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 382 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 383 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 384 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 300", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 300", 523s # "instanceLocation": "", 523s # "keywordLocation": "/maximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 385 - minItems.json: "minItems validation" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 386 - minItems.json: "minItems validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 387 - minItems.json: "minItems validation" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 1 item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 1 item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 388 - minItems.json: "minItems validation" - "ignores non-arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 389 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 390 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 1 item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 1 item", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 391 - minLength.json: "minLength validation" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 392 - minLength.json: "minLength validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 393 - minLength.json: "minLength validation" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 394 - minLength.json: "minLength validation" - "ignores non-strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 395 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 396 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 397 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minLength" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 398 - minProperties.json: "minProperties validation" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 399 - minProperties.json: "minProperties validation" - "exact length is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 400 - minProperties.json: "minProperties validation" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 1 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 1 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 401 - minProperties.json: "minProperties validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 402 - minProperties.json: "minProperties validation" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 403 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 404 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 405 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 1 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object has fewer than 1 property", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 406 - minimum.json: "minimum validation" - "above the minimum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 407 - minimum.json: "minimum validation" - "boundary point is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 408 - minimum.json: "minimum validation" - "below the minimum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than 1.1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 409 - minimum.json: "minimum validation" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 410 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 411 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 412 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 413 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 414 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than -2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than -2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 415 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than -2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than -2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/minimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 416 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 417 - multipleOf.json: "by int" - "int by int" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 418 - multipleOf.json: "by int" - "int by int fail" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 419 - multipleOf.json: "by int" - "ignores non-numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 420 - multipleOf.json: "by number" - "zero is multiple of anything" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 421 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 422 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 1.5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 1.5", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 423 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 424 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 0.0001", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 0.0001", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 425 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 0.123456789", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is not a multiple of 0.123456789", 523s # "instanceLocation": "", 523s # "keywordLocation": "/multipleOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 426 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 427 - not.json: "not" - "allowed" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 428 - not.json: "not" - "disallowed" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 429 - not.json: "not multiple types" - "valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 430 - not.json: "not multiple types" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 431 - not.json: "not multiple types" - "other mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 432 - not.json: "not more complex schema" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 433 - not.json: "not more complex schema" - "other match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 434 - not.json: "not more complex schema" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 435 - not.json: "forbidden property" - "property present" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/not" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/not" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 436 - not.json: "forbidden property" - "property absent" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 437 - not.json: "forbid everything with empty schema" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 438 - not.json: "forbid everything with empty schema" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 439 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 440 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 441 - not.json: "forbid everything with empty schema" - "null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 442 - not.json: "forbid everything with empty schema" - "object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 443 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 444 - not.json: "forbid everything with empty schema" - "array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 445 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 446 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 447 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 448 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 449 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 450 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 451 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 452 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 453 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 454 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/not" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 455 - not.json: "allow everything with boolean schema false" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 456 - not.json: "allow everything with boolean schema false" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 457 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 458 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 459 - not.json: "allow everything with boolean schema false" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 460 - not.json: "allow everything with boolean schema false" - "object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 461 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 462 - not.json: "allow everything with boolean schema false" - "array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 463 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 464 - not.json: "double negation" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 465 - oneOf.json: "oneOf" - "first oneOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 466 - oneOf.json: "oneOf" - "second oneOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 467 - oneOf.json: "oneOf" - "both oneOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 468 - oneOf.json: "oneOf" - "neither oneOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/type" 523s # }, 523s # { 523s # "error": "value is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/minimum" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/type" 523s # }, 523s # { 523s # "error": "value is less than 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/minimum" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 469 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # }, 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 470 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 471 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 472 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1, 2", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 473 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 474 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 475 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/2" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1" 523s # }, 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/2" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 476 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 477 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 478 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 479 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/oneOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/properties" 523s # }, 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/oneOf/1/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/properties" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/oneOf/0/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/properties" 523s # }, 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/oneOf/1/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/properties" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 480 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 481 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 482 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/required" 523s # }, 523s # { 523s # "error": "object is missing properties: foo, baz", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/required" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/required" 523s # }, 523s # { 523s # "error": "object is missing properties: foo, baz", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/required" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 483 - oneOf.json: "oneOf with required" - "first valid - valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 484 - oneOf.json: "oneOf with required" - "second valid - valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 485 - oneOf.json: "oneOf with required" - "both valid - invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 486 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 487 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 488 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "multiple subschemas are valid: 0, 1", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 489 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/required" 523s # }, 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/required" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: bar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/required" 523s # }, 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/required" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 490 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 491 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/oneOf/0/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/oneOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/oneOf/0/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/oneOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 492 - pattern.json: "pattern validation" - "a matching pattern is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 493 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 494 - pattern.json: "pattern validation" - "ignores booleans" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 495 - pattern.json: "pattern validation" - "ignores integers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 496 - pattern.json: "pattern validation" - "ignores floats" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 497 - pattern.json: "pattern validation" - "ignores objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 498 - pattern.json: "pattern validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 499 - pattern.json: "pattern validation" - "ignores null" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 500 - pattern.json: "pattern is not anchored" - "matches a substring" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 501 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 502 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 503 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.*o/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.*o/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 504 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.*o/type" 523s # }, 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foooooo", 523s # "keywordLocation": "/patternProperties/f.*o/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.*o/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 505 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 506 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 507 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 508 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 509 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 510 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 511 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/a", 523s # "keywordLocation": "/patternProperties/a*/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/a", 523s # "keywordLocation": "/patternProperties/a*/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 512 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 20", 523s # "instanceLocation": "/aaaa", 523s # "keywordLocation": "/patternProperties/aaa*/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than 20", 523s # "instanceLocation": "/aaaa", 523s # "keywordLocation": "/patternProperties/aaa*/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 513 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/aaa", 523s # "keywordLocation": "/patternProperties/a*/type" 523s # }, 523s # { 523s # "error": "value is greater than 20", 523s # "instanceLocation": "/aaaa", 523s # "keywordLocation": "/patternProperties/aaa*/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/aaa", 523s # "keywordLocation": "/patternProperties/a*/type" 523s # }, 523s # { 523s # "error": "value is greater than 20", 523s # "instanceLocation": "/aaaa", 523s # "keywordLocation": "/patternProperties/aaa*/maximum" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 514 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 515 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not boolean", 523s # "instanceLocation": "/a31b", 523s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not boolean", 523s # "instanceLocation": "/a31b", 523s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 516 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 517 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/a_X_3", 523s # "keywordLocation": "/patternProperties/X_/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/a_X_3", 523s # "keywordLocation": "/patternProperties/X_/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 518 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 519 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 520 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 521 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/foobar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/foobar", 523s # "keywordLocation": "/patternProperties/b.*" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 522 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 523 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 524 - properties.json: "object properties validation" - "both properties present and valid is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 525 - properties.json: "object properties validation" - "one property invalid is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 526 - properties.json: "object properties validation" - "both properties invalid is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/type" 523s # }, 523s # { 523s # "error": "got array, not integer", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 527 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 528 - properties.json: "object properties validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 529 - properties.json: "object properties validation" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 530 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 531 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 3 items", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/maxItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has more than 3 items", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/maxItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 532 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 2 items", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.o/minItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 2 items", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/patternProperties/f.o/minItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 533 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 534 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 2 items", 523s # "instanceLocation": "/fxo", 523s # "keywordLocation": "/patternProperties/f.o/minItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "array has fewer than 2 items", 523s # "instanceLocation": "/fxo", 523s # "keywordLocation": "/patternProperties/f.o/minItems" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 535 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 536 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 537 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/quux", 523s # "keywordLocation": "/additionalProperties/type" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 538 - properties.json: "properties with boolean schema" - "no property present is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 539 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 540 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 541 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 542 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 543 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\tbar", 523s # "keywordLocation": "/properties/foo\tbar/type" 523s # }, 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\nbar", 523s # "keywordLocation": "/properties/foo\nbar/type" 523s # }, 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\fbar", 523s # "keywordLocation": "/properties/foo\fbar/type" 523s # }, 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\rbar", 523s # "keywordLocation": "/properties/foo\rbar/type" 523s # }, 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\"bar", 523s # "keywordLocation": "/properties/foo\"bar/type" 523s # }, 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\\bar", 523s # "keywordLocation": "/properties/foo\\bar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\tbar", 523s # "keywordLocation": "/properties/foo\tbar/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 544 - properties.json: "properties with null valued instance properties" - "allows null values" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 545 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 546 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 547 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 548 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/__proto__", 523s # "keywordLocation": "/properties/__proto__/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "/__proto__", 523s # "keywordLocation": "/properties/__proto__/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 549 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/toString/length", 523s # "keywordLocation": "/properties/toString/properties/length/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/toString", 523s # "keywordLocation": "/properties/toString/properties" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/toString/length", 523s # "keywordLocation": "/properties/toString/properties/length/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/toString", 523s # "keywordLocation": "/properties/toString/properties" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 550 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not number", 523s # "instanceLocation": "/constructor", 523s # "keywordLocation": "/properties/constructor/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not number", 523s # "instanceLocation": "/constructor", 523s # "keywordLocation": "/properties/constructor/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 551 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 552 - propertyNames.json: "propertyNames validation" - "all property names valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 553 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 3", 523s # "instanceLocation": "/foobar", 523s # "keywordLocation": "/propertyNames/maxLength" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "length is greater than 3", 523s # "instanceLocation": "/foobar", 523s # "keywordLocation": "/propertyNames/maxLength" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 554 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 555 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 556 - propertyNames.json: "propertyNames validation" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 557 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 558 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 559 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "/aaA", 523s # "keywordLocation": "/propertyNames/pattern" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "/aaA", 523s # "keywordLocation": "/propertyNames/pattern" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 560 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 561 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 562 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 563 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/propertyNames" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "subschema is false", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/propertyNames" 523s # }, 523s # { 523s # "error": "not all property names are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/propertyNames" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 564 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 565 - ref.json: "root pointer ref" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 566 - ref.json: "root pointer ref" - "recursive match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 567 - ref.json: "root pointer ref" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 568 - ref.json: "root pointer ref" - "recursive mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/additionalProperties", 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/additionalProperties", 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/additionalProperties", 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/additionalProperties", 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 569 - ref.json: "relative pointer ref to object" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 570 - ref.json: "relative pointer ref to object" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/properties/foo/type", 523s # "error": "got boolean, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/properties/foo/type", 523s # "error": "got boolean, not integer", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/properties/bar/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 571 - ref.json: "relative pointer ref to array" - "match array" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 572 - ref.json: "relative pointer ref to array" - "mismatch array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/items/0/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/1/$ref/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/items/0/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/1", 523s # "keywordLocation": "/items/1/$ref/type" 523s # }, 523s # { 523s # "error": "not all items are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 573 - ref.json: "escaped pointer ref" - "slash invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/slash", 523s # "keywordLocation": "/properties/slash/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/slash", 523s # "keywordLocation": "/properties/slash/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 574 - ref.json: "escaped pointer ref" - "tilde invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/tilde", 523s # "keywordLocation": "/properties/tilde/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/tilde", 523s # "keywordLocation": "/properties/tilde/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 575 - ref.json: "escaped pointer ref" - "percent invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/percent", 523s # "keywordLocation": "/properties/percent/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/percent", 523s # "keywordLocation": "/properties/percent/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 576 - ref.json: "escaped pointer ref" - "slash valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 577 - ref.json: "escaped pointer ref" - "tilde valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 578 - ref.json: "escaped pointer ref" - "percent valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 579 - ref.json: "nested refs" - "nested ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 580 - ref.json: "nested refs" - "nested ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/a/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/a/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 581 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 582 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 583 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/reffed/type", 523s # "error": "got string, not array", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/reffed/type", 523s # "error": "got string, not array", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 584 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 585 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 586 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 587 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 523s # "error": "value is less than 0", 523s # "instanceLocation": "/minLength", 523s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/minLength", 523s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeInteger/minimum", 523s # "error": "value is less than 0", 523s # "instanceLocation": "/minLength", 523s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/definitions/nonNegativeIntegerDefault0/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/minLength", 523s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://json-schema.org/draft-06/schema#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 588 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 589 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/$ref", 523s # "keywordLocation": "/properties/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not string", 523s # "instanceLocation": "/$ref", 523s # "keywordLocation": "/properties/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 590 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 591 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/is-string/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/$ref", 523s # "keywordLocation": "/properties/$ref/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/is-string/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/$ref", 523s # "keywordLocation": "/properties/$ref/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 592 - ref.json: "$ref to boolean schema true" - "any value is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 593 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/bool", 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/bool", 523s # "error": "subschema is false", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 594 - ref.json: "Recursive references between schemas" - "valid tree" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 595 - ref.json: "Recursive references between schemas" - "invalid tree" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0/subtree/nodes/0", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/nodes/0/subtree/nodes", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0/subtree", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/nodes", 523s # "keywordLocation": "/properties/nodes/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0/subtree/nodes/0", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/nodes/0/subtree/nodes", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0/subtree", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/nodes/0", 523s # "keywordLocation": "/properties/nodes/items/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/nodes", 523s # "keywordLocation": "/properties/nodes/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 596 - ref.json: "refs with quote" - "object with numbers is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 597 - ref.json: "refs with quote" - "object with strings is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\"bar", 523s # "keywordLocation": "/properties/foo\"bar/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "/foo\"bar", 523s # "keywordLocation": "/properties/foo\"bar/$ref/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 598 - ref.json: "Location-independent identifier" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 599 - ref.json: "Location-independent identifier" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 600 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 601 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 602 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 603 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 604 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 605 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/enum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 606 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 607 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 608 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 609 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 610 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo/bar", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 611 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 612 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 613 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 614 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 523s # "error": "value is less than 30", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/minimum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 523s # "error": "value is less than 30", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/minimum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 615 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 616 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 617 - ref.json: "URN base URI with NSS" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 618 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 619 - ref.json: "URN base URI with r-component" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 620 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 621 - ref.json: "URN base URI with q-component" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 622 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 623 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 624 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 625 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 626 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/foo", 523s # "keywordLocation": "/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 627 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 628 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 629 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 630 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 631 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 632 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 633 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 634 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions//definitions//type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions//definitions//type", 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/type" 523s # }, 523s # { 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 635 - refRemote.json: "remote ref" - "remote ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 636 - refRemote.json: "remote ref" - "remote ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 637 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 638 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 639 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 640 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 641 - refRemote.json: "base URI change" - "base URI change ref valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 642 - refRemote.json: "base URI change" - "base URI change ref invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/0/0", 523s # "keywordLocation": "/items/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/0", 523s # "keywordLocation": "/items/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/items" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 643 - refRemote.json: "base URI change - change folder" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 644 - refRemote.json: "base URI change - change folder" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/list/0", 523s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/list", 523s # "keywordLocation": "/properties/list/$ref/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/list/0", 523s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/list", 523s # "keywordLocation": "/properties/list/$ref/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 645 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 646 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/list/0", 523s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/list", 523s # "keywordLocation": "/properties/list/$ref/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "/list/0", 523s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 523s # "error": "subschema is not valid against all items", 523s # "instanceLocation": "/list", 523s # "keywordLocation": "/properties/list/$ref/items" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 647 - refRemote.json: "root ref in remote ref" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 648 - refRemote.json: "root ref in remote ref" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 649 - refRemote.json: "root ref in remote ref" - "object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 523s # "error": "got object, not null", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 523s # "error": "got object, not string", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 523s # "error": "got object, not null", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 523s # "error": "got object, not string", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/anyOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 650 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties/bar/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/bar", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf/0/$ref/allOf" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 523s # "error": "subschema 0 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/allOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 651 - refRemote.json: "remote ref with ref to definitions" - "valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 652 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 653 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/A/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 654 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/name/foo", 523s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "/name/foo", 523s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "/name", 523s # "keywordLocation": "/properties/name/$ref/properties" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/properties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 655 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 656 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 657 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/draft6/detached-ref.json#/definitions/detached/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/$ref/$ref/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 658 - required.json: "required validation" - "present required property is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 659 - required.json: "required validation" - "non-present required property is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing property: foo", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 660 - required.json: "required validation" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 661 - required.json: "required validation" - "ignores strings" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 662 - required.json: "required validation" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 663 - required.json: "required default validation" - "not required by default" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 664 - required.json: "required with empty array" - "property not required" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 665 - required.json: "required with escaped characters" - "object with all properties present is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 666 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 667 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 668 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 669 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, toString, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, toString, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 670 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: toString, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: toString, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 671 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, constructor", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 672 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, toString", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "object is missing properties: __proto__, toString", 523s # "instanceLocation": "", 523s # "keywordLocation": "/required" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 673 - required.json: "required properties whose names are Javascript object property names" - "all present" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 674 - type.json: "integer type matches integers" - "an integer is an integer" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 675 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 676 - type.json: "integer type matches integers" - "a float is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got number, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 677 - type.json: "integer type matches integers" - "a string is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 678 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got string, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 679 - type.json: "integer type matches integers" - "an object is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got object, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got object, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 680 - type.json: "integer type matches integers" - "an array is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got array, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got array, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 681 - type.json: "integer type matches integers" - "a boolean is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got boolean, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got boolean, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 682 - type.json: "integer type matches integers" - "null is not an integer" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got null, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 523s # "error": "got null, not integer", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 683 - type.json: "number type matches numbers" - "an integer is a number" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 684 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 685 - type.json: "number type matches numbers" - "a float is a number" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 686 - type.json: "number type matches numbers" - "a string is not a number" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 687 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 688 - type.json: "number type matches numbers" - "an object is not a number" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 689 - type.json: "number type matches numbers" - "an array is not a number" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 690 - type.json: "number type matches numbers" - "a boolean is not a number" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 691 - type.json: "number type matches numbers" - "null is not a number" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not number", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 692 - type.json: "string type matches strings" - "1 is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 693 - type.json: "string type matches strings" - "a float is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got number, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got number, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 694 - type.json: "string type matches strings" - "a string is a string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 695 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 696 - type.json: "string type matches strings" - "an empty string is still a string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 697 - type.json: "string type matches strings" - "an object is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got object, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got object, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 698 - type.json: "string type matches strings" - "an array is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got array, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got array, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 699 - type.json: "string type matches strings" - "a boolean is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got boolean, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got boolean, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 700 - type.json: "string type matches strings" - "null is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got null, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got null, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 701 - type.json: "object type matches objects" - "an integer is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 702 - type.json: "object type matches objects" - "a float is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 703 - type.json: "object type matches objects" - "a string is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 704 - type.json: "object type matches objects" - "an object is an object" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 705 - type.json: "object type matches objects" - "an array is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 706 - type.json: "object type matches objects" - "a boolean is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 707 - type.json: "object type matches objects" - "null is not an object" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 708 - type.json: "array type matches arrays" - "an integer is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 709 - type.json: "array type matches arrays" - "a float is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 710 - type.json: "array type matches arrays" - "a string is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 711 - type.json: "array type matches arrays" - "an object is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 712 - type.json: "array type matches arrays" - "an array is an array" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 713 - type.json: "array type matches arrays" - "a boolean is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 714 - type.json: "array type matches arrays" - "null is not an array" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not array", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 715 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 716 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 717 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 718 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 719 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 720 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 721 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 722 - type.json: "boolean type matches booleans" - "true is a boolean" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 723 - type.json: "boolean type matches booleans" - "false is a boolean" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 724 - type.json: "boolean type matches booleans" - "null is not a boolean" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not boolean", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 725 - type.json: "null type matches only the null object" - "an integer is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 726 - type.json: "null type matches only the null object" - "a float is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 727 - type.json: "null type matches only the null object" - "zero is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 728 - type.json: "null type matches only the null object" - "a string is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 729 - type.json: "null type matches only the null object" - "an empty string is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 730 - type.json: "null type matches only the null object" - "an object is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 731 - type.json: "null type matches only the null object" - "an array is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 732 - type.json: "null type matches only the null object" - "true is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 733 - type.json: "null type matches only the null object" - "false is not null" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 734 - type.json: "null type matches only the null object" - "null is null" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 735 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 736 - type.json: "multiple types can be specified in an array" - "a string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 737 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got number, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 738 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got object, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 739 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got array, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 740 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got boolean, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 741 - type.json: "multiple types can be specified in an array" - "null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not one of integer, string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 742 - type.json: "type as array with one item" - "string is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 743 - type.json: "type as array with one item" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 744 - type.json: "type: array or object" - "array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 745 - type.json: "type: array or object" - "object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 746 - type.json: "type: array or object" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 747 - type.json: "type: array or object" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 748 - type.json: "type: array or object" - "null is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got null, not one of array, object", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 749 - type.json: "type: array, object or null" - "array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 750 - type.json: "type: array, object or null" - "object is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 751 - type.json: "type: array, object or null" - "null is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 752 - type.json: "type: array, object or null" - "number is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of array, object, null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got integer, not one of array, object, null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 753 - type.json: "type: array, object or null" - "string is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not one of array, object, null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not one of array, object, null", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 754 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 755 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 756 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 757 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 758 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 759 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 760 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 761 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 762 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 763 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 764 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 765 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 766 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 767 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 768 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 769 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 2 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 770 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 771 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 772 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 773 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 774 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 775 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 776 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 777 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 4 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 4 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 778 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 779 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 780 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 781 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 782 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 783 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 784 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 785 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 786 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 787 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 788 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 2 and 3 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 2 and 3 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 789 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 2 and 3 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 2 and 3 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 790 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 791 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 792 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 793 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "items at indices 0 and 1 are not unique", 523s # "instanceLocation": "", 523s # "keywordLocation": "/uniqueItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 794 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 795 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 796 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 797 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 798 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 799 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 800 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 801 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 802 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 803 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 804 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 805 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 806 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 807 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 808 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 809 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 810 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 811 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 812 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 813 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 814 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 815 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 816 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 817 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 818 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 819 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 820 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 821 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 822 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional item not permitted", 523s # "instanceLocation": "/2", 523s # "keywordLocation": "/additionalItems" 523s # }, 523s # { 523s # "error": "subschema is not valid against all additional items", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalItems" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 823 - optional/bignum.json: "integer" - "a bignum is an integer" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 824 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 825 - optional/bignum.json: "number" - "a bignum is a number" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 826 - optional/bignum.json: "number" - "a negative bignum is a number" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 827 - optional/bignum.json: "string" - "a bignum is not a string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/type" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 828 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 829 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMaximum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 830 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 831 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 523s # "instanceLocation": "", 523s # "keywordLocation": "/exclusiveMinimum" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 832 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 833 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 834 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 835 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 836 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 837 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 838 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 839 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 840 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true # 523s 1..1 523s } 523s ok 841 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "\"߀\"" 523s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 842 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "\"߀\"" 523s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 843 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false # 523s 1..1 523s } 523s ok 844 - 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" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected true; got false 523s # data: "\"߀\"" 523s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s 1..1 523s } 523s ok 845 - 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" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected true; got false 523s # data: "\"߀\"" 523s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s 1..1 523s } 523s ok 846 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true # 523s 1..1 523s } 523s ok 847 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "\"é\"" 523s # schema: "{\"pattern\":\"^\\\\w$\",\"type\":\"string\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 848 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false # 523s 1..1 523s } 523s ok 849 - 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" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected true; got false 523s # data: "\"é\"" 523s # schema: "{\"pattern\":\"^\\\\W$\",\"type\":\"string\"}" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s 1..1 523s } 523s ok 850 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 851 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 852 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 853 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 854 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 855 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected true; got false 523s # data: "\"\"" 523s # schema: "{\"pattern\":\"^\\\\s$\",\"type\":\"string\"}" 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s 1..1 523s } 523s ok 856 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 857 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 858 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 859 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 860 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 861 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 862 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 863 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 864 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 865 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 866 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "\"\"" 523s # schema: "{\"pattern\":\"^\\\\S$\",\"type\":\"string\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 867 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 868 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 869 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 870 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 871 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 872 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 873 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 874 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 875 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 876 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 877 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # 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.\"" 523s # schema: "{\"pattern\":\"\\\\wcole\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 878 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # 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.\"" 523s # schema: "{\"pattern\":\"\\\\wcole\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 879 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 880 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 881 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 882 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 883 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 884 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 885 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "\"৪২\"" 523s # schema: "{\"pattern\":\"^\\\\d+$\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 886 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 887 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 888 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 889 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 890 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 891 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 892 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/L'ÉCOLE", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/L'ÉCOLE", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 893 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 894 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "{\"l'école\":\"pas de vraie vie\"}" 523s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 895 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "{\"l'école\":\"pas de vraie vie\"}" 523s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 896 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/L'ÉCOLE", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/L'ÉCOLE", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 897 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/l'école", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/l'école", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 898 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/l'école", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/l'école", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 899 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 900 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 901 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/-%#", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/-%#", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 902 - 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" 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s not ok 1 - evaluation result is incorrect # 523s # Failed test (with amnesty) 'evaluation result is incorrect' 523s # at t/zzz-acceptance-draft6.t line 49. 523s # expected false; got true 523s # data: "{\"৪২\":\"khajit has wares if you have coin\"}" 523s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"^\\\\d+$\":true},\"type\":\"object\"}" 523s # result: { 523s # "valid": true 523s # } 523s 1..1 523s } 523s ok 903 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 904 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/-%#", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "additional property not permitted", 523s # "instanceLocation": "/-%#", 523s # "keywordLocation": "/additionalProperties" 523s # }, 523s # { 523s # "error": "not all additional properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/additionalProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 905 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 906 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s # 523s ok 907 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 908 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 909 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/enum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/enum" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 910 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 911 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/const" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/const" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 912 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 913 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/const" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/0/const" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 523s # "error": "value does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf/1/$ref/const" 523s # }, 523s # { 523s # "error": "subschema 1 is not valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf/1/allOf" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/oneOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 914 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 915 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 916 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 917 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 918 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 919 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 920 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "pattern does not match", 523s # "instanceLocation": "", 523s # "keywordLocation": "/pattern" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 921 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 922 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 923 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 924 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/🐲", 523s # "keywordLocation": "/patternProperties/^🐲*$/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/🐲", 523s # "keywordLocation": "/patternProperties/^🐲*$/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 925 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 523s # result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/🐲🐲", 523s # "keywordLocation": "/patternProperties/^🐲*$/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "error": "got string, not integer", 523s # "instanceLocation": "/🐲🐲", 523s # "keywordLocation": "/patternProperties/^🐲*$/type" 523s # }, 523s # { 523s # "error": "not all properties are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/patternProperties" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s ok 926 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 523s # result: { 523s # "valid": true 523s # } 523s # short-circuited result: { 523s # "valid": true 523s # } 523s ok 1 - test passes: data is valid: true 523s 1..1 523s } 523s ok 927 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 523s # "error": "got null, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/2/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 523s # "error": "got null, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/2/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s ok 928 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 523s # result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/2/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s # short-circuited result: { 523s # "errors": [ 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/0/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 523s # "error": "subschema is valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/1/$ref/not" 523s # }, 523s # { 523s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 523s # "error": "got integer, not string", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf/2/$ref/type" 523s # }, 523s # { 523s # "error": "no subschemas are valid", 523s # "instanceLocation": "", 523s # "keywordLocation": "/anyOf" 523s # } 523s # ], 523s # "valid": false 523s # } 523s ok 1 - test passes: data is valid: false 523s 1..1 523s } 523s # 523s # 523s # generated with: Test::JSON::Schema::Acceptance 1.026 523s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 523s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 523s # specification version: draft6 523s # optional tests included: yes 523s # skipping directory: optional/format 523s # 523s # filename pass todo-fail fail 523s # --------------------------------------------------------------- 523s # additionalItems.json 20 0 0 523s # additionalProperties.json 16 0 0 523s # allOf.json 30 0 0 523s # anyOf.json 18 0 0 523s # boolean_schema.json 18 0 0 523s # const.json 50 0 0 523s # contains.json 19 0 0 523s # default.json 7 0 0 523s # definitions.json 2 0 0 523s # dependencies.json 36 0 0 523s # enum.json 45 0 0 523s # exclusiveMaximum.json 4 0 0 523s # exclusiveMinimum.json 4 0 0 523s # format.json 54 0 0 523s # infinite-loop-detection.json 2 0 0 523s # items.json 28 0 0 523s # maxItems.json 6 0 0 523s # maxLength.json 7 0 0 523s # maxProperties.json 10 0 0 523s # maximum.json 8 0 0 523s # minItems.json 6 0 0 523s # minLength.json 7 0 0 523s # minProperties.json 8 0 0 523s # minimum.json 11 0 0 523s # multipleOf.json 10 0 0 523s # not.json 38 0 0 523s # oneOf.json 27 0 0 523s # pattern.json 9 0 0 523s # patternProperties.json 23 0 0 523s # properties.json 28 0 0 523s # propertyNames.json 13 0 0 523s # ref.json 70 0 0 523s # refRemote.json 23 0 0 523s # required.json 16 0 0 523s # type.json 80 0 0 523s # uniqueItems.json 69 0 0 523s # optional/bignum.json 9 0 0 523s # optional/ecmascript-regex.json 60 14 0 523s # optional/float-overflow.json 1 0 0 523s # optional/id.json 7 0 0 523s # optional/non-bmp-regex.json 12 0 0 523s # optional/unknownKeyword.json 3 0 0 523s # --------------------------------------------------------------- 523s # TOTAL 914 14 0 523s # 523s # Congratulations, all non-optional tests are passing! 523s # 523s ok 929 - no leaks in the main evaluator object 523s ok 930 - no leaks in the short-circuiting evaluator object 523s 1..930 523s ok 525s t/zzz-acceptance-draft7-format.t ........ 525s # AUTHOR_TESTING: 525s # AUTOMATED_TESTING: 1 525s # EXTENDED_TESTING: 525s # NO_TODO: 525s # TEST_DIR: 525s # NO_SHORT_CIRCUIT: 525s # 525s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7/optional/format against draft7... 525s # 525s ok 1 - date-time.json: "validation of date-time strings" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 2 - date-time.json: "validation of date-time strings" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 3 - date-time.json: "validation of date-time strings" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 4 - date-time.json: "validation of date-time strings" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 5 - date-time.json: "validation of date-time strings" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 6 - date-time.json: "validation of date-time strings" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 7 - date-time.json: "validation of date-time strings" - "a valid date-time string" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 8 - date-time.json: "validation of date-time strings" - "a valid date-time string without second fraction" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 9 - date-time.json: "validation of date-time strings" - "a valid date-time string with plus offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 10 - date-time.json: "validation of date-time strings" - "a valid date-time string with minus offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 11 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, UTC" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 12 - date-time.json: "validation of date-time strings" - "a valid date-time with a leap second, with minus offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 13 - date-time.json: "validation of date-time strings" - "an invalid date-time past leap second, UTC" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 14 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong minute, UTC" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 15 - date-time.json: "validation of date-time strings" - "an invalid date-time with leap second on a wrong hour, UTC" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 16 - date-time.json: "validation of date-time strings" - "an invalid day in date-time string" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 17 - date-time.json: "validation of date-time strings" - "an invalid offset in date-time string" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 18 - date-time.json: "validation of date-time strings" - "an invalid closing Z after time-zone offset" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 19 - date-time.json: "validation of date-time strings" - "an invalid date-time string" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 20 - date-time.json: "validation of date-time strings" - "case-insensitive T and Z" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 21 - date-time.json: "validation of date-time strings" - "only RFC3339 not all of ISO 8601 are valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 22 - date-time.json: "validation of date-time strings" - "invalid non-padded month dates" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 23 - date-time.json: "validation of date-time strings" - "invalid non-padded day dates" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 24 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in date portion" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 25 - date-time.json: "validation of date-time strings" - "invalid non-ASCII '৪' (a Bengali 4) in time portion" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date-time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 26 - date.json: "validation of date strings" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 27 - date.json: "validation of date strings" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 28 - date.json: "validation of date strings" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 29 - date.json: "validation of date strings" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 30 - date.json: "validation of date strings" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 31 - date.json: "validation of date strings" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 32 - date.json: "validation of date strings" - "a valid date string" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 33 - date.json: "validation of date strings" - "a valid date string with 31 days in January" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 34 - date.json: "validation of date strings" - "a invalid date string with 32 days in January" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 35 - date.json: "validation of date strings" - "a valid date string with 28 days in February (normal)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 36 - date.json: "validation of date strings" - "a invalid date string with 29 days in February (normal)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 37 - date.json: "validation of date strings" - "a valid date string with 29 days in February (leap)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 38 - date.json: "validation of date strings" - "a invalid date string with 30 days in February (leap)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 39 - date.json: "validation of date strings" - "a valid date string with 31 days in March" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 40 - date.json: "validation of date strings" - "a invalid date string with 32 days in March" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 41 - date.json: "validation of date strings" - "a valid date string with 30 days in April" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 42 - date.json: "validation of date strings" - "a invalid date string with 31 days in April" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 43 - date.json: "validation of date strings" - "a valid date string with 31 days in May" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 44 - date.json: "validation of date strings" - "a invalid date string with 32 days in May" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 45 - date.json: "validation of date strings" - "a valid date string with 30 days in June" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 46 - date.json: "validation of date strings" - "a invalid date string with 31 days in June" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 47 - date.json: "validation of date strings" - "a valid date string with 31 days in July" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 48 - date.json: "validation of date strings" - "a invalid date string with 32 days in July" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 49 - date.json: "validation of date strings" - "a valid date string with 31 days in August" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 50 - date.json: "validation of date strings" - "a invalid date string with 32 days in August" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 51 - date.json: "validation of date strings" - "a valid date string with 30 days in September" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 52 - date.json: "validation of date strings" - "a invalid date string with 31 days in September" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 53 - date.json: "validation of date strings" - "a valid date string with 31 days in October" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 54 - date.json: "validation of date strings" - "a invalid date string with 32 days in October" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 55 - date.json: "validation of date strings" - "a valid date string with 30 days in November" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 56 - date.json: "validation of date strings" - "a invalid date string with 31 days in November" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 57 - date.json: "validation of date strings" - "a valid date string with 31 days in December" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 58 - date.json: "validation of date strings" - "a invalid date string with 32 days in December" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 59 - date.json: "validation of date strings" - "a invalid date string with invalid month" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 60 - date.json: "validation of date strings" - "an invalid date string" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 61 - date.json: "validation of date strings" - "only RFC3339 not all of ISO 8601 are valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 62 - date.json: "validation of date strings" - "non-padded month dates are not valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 63 - date.json: "validation of date strings" - "non-padded day dates are not valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 64 - date.json: "validation of date strings" - "invalid month" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 65 - date.json: "validation of date strings" - "invalid month-day combination" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 66 - date.json: "validation of date strings" - "2021 is not a leap year" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 67 - date.json: "validation of date strings" - "2020 is a leap year" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 68 - date.json: "validation of date strings" - "invalid non-ASCII '৪' (a Bengali 4)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 69 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 70 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 71 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 72 - date.json: "validation of date strings" - "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid date", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 73 - email.json: "validation of e-mail addresses" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 74 - email.json: "validation of e-mail addresses" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 75 - email.json: "validation of e-mail addresses" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 76 - email.json: "validation of e-mail addresses" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 77 - email.json: "validation of e-mail addresses" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 78 - email.json: "validation of e-mail addresses" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 79 - email.json: "validation of e-mail addresses" - "a valid e-mail address" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 80 - email.json: "validation of e-mail addresses" - "an invalid e-mail address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 81 - email.json: "validation of e-mail addresses" - "tilde in local part is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 82 - email.json: "validation of e-mail addresses" - "tilde before local part is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 83 - email.json: "validation of e-mail addresses" - "tilde after local part is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 84 - email.json: "validation of e-mail addresses" - "dot before local part is not valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 85 - email.json: "validation of e-mail addresses" - "dot after local part is not valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 86 - email.json: "validation of e-mail addresses" - "two separated dots inside local part are valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 87 - email.json: "validation of e-mail addresses" - "two subsequent dots inside local part are not valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 88 - hostname.json: "validation of host names" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 89 - hostname.json: "validation of host names" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 90 - hostname.json: "validation of host names" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 91 - hostname.json: "validation of host names" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 92 - hostname.json: "validation of host names" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 93 - hostname.json: "validation of host names" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 94 - hostname.json: "validation of host names" - "a valid host name" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 95 - hostname.json: "validation of host names" - "a valid punycoded IDN hostname" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 96 - hostname.json: "validation of host names" - "a host name starting with an illegal character" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 97 - hostname.json: "validation of host names" - "a host name containing illegal characters" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 98 - hostname.json: "validation of host names" - "a host name with a component too long" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 99 - hostname.json: "validation of host names" - "starts with hyphen" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 100 - hostname.json: "validation of host names" - "ends with hyphen" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 101 - hostname.json: "validation of host names" - "starts with underscore" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 102 - hostname.json: "validation of host names" - "ends with underscore" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 103 - hostname.json: "validation of host names" - "contains underscore" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 104 - hostname.json: "validation of host names" - "maximum label length" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 105 - hostname.json: "validation of host names" - "exceeds maximum label length" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 106 - hostname.json: "validation of host names" - "single label" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"hostname\"" 525s # schema: "{\"format\":\"hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 107 - hostname.json: "validation of host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"host-name\"" 525s # schema: "{\"format\":\"hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 108 - hostname.json: "validation of host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"h0stn4me\"" 525s # schema: "{\"format\":\"hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 109 - hostname.json: "validation of host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"hostnam3\"" 525s # schema: "{\"format\":\"hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s # 525s ok 110 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 111 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 112 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 113 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 114 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 115 - idn-email.json: "validation of an internationalized e-mail addresses" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 116 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid idn e-mail (example@example.test in Hangul)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 117 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid idn e-mail address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 118 - idn-email.json: "validation of an internationalized e-mail addresses" - "a valid e-mail address" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 119 - idn-email.json: "validation of an internationalized e-mail addresses" - "an invalid e-mail address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-email", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 120 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 121 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 122 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 123 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 124 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 125 - idn-hostname.json: "validation of internationalized host names" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 126 - idn-hostname.json: "validation of internationalized host names" - "a valid host name (example.test in Hangul)" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 127 - 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" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 128 - 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" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"실〮례.테스트\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s ok 129 - idn-hostname.json: "validation of internationalized host names" - "a host name with a component too long" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 130 - idn-hostname.json: "validation of internationalized host names" - "invalid label, correct Punycode" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 131 - idn-hostname.json: "validation of internationalized host names" - "valid Chinese Punycode" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"xn--ihqwcrb4cv8a8dqg056pqjye\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 132 - idn-hostname.json: "validation of internationalized host names" - "invalid Punycode" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 133 - idn-hostname.json: "validation of internationalized host names" - "U-label contains "--" in the 3rd and 4th position" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 134 - idn-hostname.json: "validation of internationalized host names" - "U-label starts with a dash" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 135 - idn-hostname.json: "validation of internationalized host names" - "U-label ends with a dash" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 136 - idn-hostname.json: "validation of internationalized host names" - "U-label starts and ends with a dash" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 137 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Spacing Combining Mark" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 138 - idn-hostname.json: "validation of internationalized host names" - "Begins with a Nonspacing Mark" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 139 - idn-hostname.json: "validation of internationalized host names" - "Begins with an Enclosing Mark" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 140 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"ßς་〇\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 141 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are PVALID, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"Û½Û¾\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 142 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, right-to-left chars" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 143 - idn-hostname.json: "validation of internationalized host names" - "Exceptions that are DISALLOWED, left-to-right chars" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 144 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no preceding 'l'" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 145 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing preceding" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 146 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with no following 'l'" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 147 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with nothing following" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 148 - idn-hostname.json: "validation of internationalized host names" - "MIDDLE DOT with surrounding 'l's" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"l·l\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 149 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by Greek" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 150 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA not followed by anything" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 151 - idn-hostname.json: "validation of internationalized host names" - "Greek KERAIA followed by Greek" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"α͵β\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 152 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 153 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH not preceded by anything" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 154 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERESH preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"א׳ב\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 155 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 156 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM not preceded by anything" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 157 - idn-hostname.json: "validation of internationalized host names" - "Hebrew GERSHAYIM preceded by Hebrew" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"א״ב\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 158 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 159 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with no other characters" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 160 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Hiragana" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"・ぁ\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 161 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Katakana" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"・ァ\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 162 - idn-hostname.json: "validation of internationalized host names" - "KATAKANA MIDDLE DOT with Han" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"・丈\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 163 - idn-hostname.json: "validation of internationalized host names" - "Arabic-Indic digits mixed with Extended Arabic-Indic digits" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 164 - 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" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"ب٠ب\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 165 - 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" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"Û°0\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 166 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by Virama" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 167 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER not preceded by anything" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false # 525s 1..1 525s } 525s ok 168 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"क्‍ष\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 169 - idn-hostname.json: "validation of internationalized host names" - "ZERO WIDTH NON-JOINER preceded by Virama" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"क्‌ष\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 170 - 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" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"بي‌بي\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 171 - idn-hostname.json: "validation of internationalized host names" - "single label" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"hostname\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 172 - idn-hostname.json: "validation of internationalized host names" - "single label with hyphen" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"host-name\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 173 - idn-hostname.json: "validation of internationalized host names" - "single label with digits" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"h0stn4me\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s ok 174 - idn-hostname.json: "validation of internationalized host names" - "single label ending with digit" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected true; got false 525s # data: "\"hostnam3\"" 525s # schema: "{\"format\":\"idn-hostname\"}" 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid idn-hostname", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s 1..1 525s } 525s # 525s ok 175 - ipv4.json: "validation of IP addresses" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 176 - ipv4.json: "validation of IP addresses" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 177 - ipv4.json: "validation of IP addresses" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 178 - ipv4.json: "validation of IP addresses" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 179 - ipv4.json: "validation of IP addresses" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 180 - ipv4.json: "validation of IP addresses" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 181 - ipv4.json: "validation of IP addresses" - "a valid IP address" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 182 - ipv4.json: "validation of IP addresses" - "an IP address with too many components" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 183 - ipv4.json: "validation of IP addresses" - "an IP address with out-of-range values" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 184 - ipv4.json: "validation of IP addresses" - "an IP address without 4 components" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 185 - ipv4.json: "validation of IP addresses" - "an IP address as an integer" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 186 - ipv4.json: "validation of IP addresses" - "an IP address as an integer (decimal)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 187 - ipv4.json: "validation of IP addresses" - "invalid leading zeroes, as they are treated as octals" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 188 - ipv4.json: "validation of IP addresses" - "value without leading zero is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 189 - ipv4.json: "validation of IP addresses" - "invalid non-ASCII '২' (a Bengali 2)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 190 - ipv4.json: "validation of IP addresses" - "netmask is not a part of ipv4 address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv4", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 191 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 192 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 193 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 194 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 195 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 196 - ipv6.json: "validation of IPv6 addresses" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 197 - ipv6.json: "validation of IPv6 addresses" - "a valid IPv6 address" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 198 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with out-of-range values" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 199 - ipv6.json: "validation of IPv6 addresses" - "trailing 4 hex symbols is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 200 - ipv6.json: "validation of IPv6 addresses" - "trailing 5 hex symbols is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 201 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address with too many components" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 202 - ipv6.json: "validation of IPv6 addresses" - "an IPv6 address containing illegal characters" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 203 - ipv6.json: "validation of IPv6 addresses" - "no digits is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 204 - ipv6.json: "validation of IPv6 addresses" - "leading colons is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 205 - ipv6.json: "validation of IPv6 addresses" - "trailing colons is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 206 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 207 - ipv6.json: "validation of IPv6 addresses" - "missing trailing octet is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 208 - ipv6.json: "validation of IPv6 addresses" - "missing leading octet with omitted octets later" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 209 - ipv6.json: "validation of IPv6 addresses" - "single set of double colons in the middle is valid" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 210 - ipv6.json: "validation of IPv6 addresses" - "two sets of double colons is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 211 - ipv6.json: "validation of IPv6 addresses" - "mixed format with the ipv4 section as decimal octets" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 212 - ipv6.json: "validation of IPv6 addresses" - "mixed format with double colons between the sections" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 213 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with octet out of range" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 214 - ipv6.json: "validation of IPv6 addresses" - "mixed format with ipv4 section with a hex octet" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 215 - ipv6.json: "validation of IPv6 addresses" - "mixed format with leading double colons (ipv4-mapped ipv6 address)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 216 - ipv6.json: "validation of IPv6 addresses" - "triple colons is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 217 - ipv6.json: "validation of IPv6 addresses" - "8 octets" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 218 - ipv6.json: "validation of IPv6 addresses" - "insufficient octets without double colons" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 219 - ipv6.json: "validation of IPv6 addresses" - "no colons is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 220 - ipv6.json: "validation of IPv6 addresses" - "ipv4 is not ipv6" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 221 - ipv6.json: "validation of IPv6 addresses" - "ipv4 segment must have 4 octets" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 222 - ipv6.json: "validation of IPv6 addresses" - "leading whitespace is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 223 - ipv6.json: "validation of IPv6 addresses" - "trailing whitespace is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 224 - ipv6.json: "validation of IPv6 addresses" - "netmask is not a part of ipv6 address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 225 - ipv6.json: "validation of IPv6 addresses" - "zone id is not a part of ipv6 address" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 226 - ipv6.json: "validation of IPv6 addresses" - "a long valid ipv6" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 227 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, first" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 228 - ipv6.json: "validation of IPv6 addresses" - "a long invalid ipv6, below length limit, second" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 229 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 230 - ipv6.json: "validation of IPv6 addresses" - "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid ipv6", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 231 - iri-reference.json: "validation of IRI References" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 232 - iri-reference.json: "validation of IRI References" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 233 - iri-reference.json: "validation of IRI References" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 234 - iri-reference.json: "validation of IRI References" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 235 - iri-reference.json: "validation of IRI References" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 236 - iri-reference.json: "validation of IRI References" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 237 - iri-reference.json: "validation of IRI References" - "a valid IRI" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 238 - iri-reference.json: "validation of IRI References" - "a valid protocol-relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 239 - iri-reference.json: "validation of IRI References" - "a valid relative IRI Reference" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 240 - iri-reference.json: "validation of IRI References" - "an invalid IRI Reference" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"\\\\\\\\WINDOWS\\\\filëßåré\"" 525s # schema: "{\"format\":\"iri-reference\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s ok 241 - iri-reference.json: "validation of IRI References" - "a valid IRI Reference" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 242 - iri-reference.json: "validation of IRI References" - "a valid IRI fragment" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 243 - iri-reference.json: "validation of IRI References" - "an invalid IRI fragment" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"#ƒräg\\\\mênt\"" 525s # schema: "{\"format\":\"iri-reference\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s # 525s ok 244 - iri.json: "validation of IRIs" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 245 - iri.json: "validation of IRIs" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 246 - iri.json: "validation of IRIs" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 247 - iri.json: "validation of IRIs" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 248 - iri.json: "validation of IRIs" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 249 - iri.json: "validation of IRIs" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 250 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 251 - iri.json: "validation of IRIs" - "a valid IRI with anchor tag and parentheses" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 252 - iri.json: "validation of IRIs" - "a valid IRI with URL-encoded stuff" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 253 - iri.json: "validation of IRIs" - "a valid IRI with many special characters" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 254 - iri.json: "validation of IRIs" - "a valid IRI based on IPv6" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 255 - iri.json: "validation of IRIs" - "an invalid IRI based on IPv6" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"http://2001:0db8:85a3:0000:0000:8a2e:0370:7334\"" 525s # schema: "{\"format\":\"iri\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s ok 256 - iri.json: "validation of IRIs" - "an invalid relative IRI Reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 257 - iri.json: "validation of IRIs" - "an invalid IRI" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 258 - iri.json: "validation of IRIs" - "an invalid IRI though valid IRI reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid iri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 259 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 260 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 261 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 262 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 263 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 264 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 265 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "a valid JSON-pointer" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 266 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (~ not escaped)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 267 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with empty segment" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 268 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer with the last empty segment" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 269 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#1" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 270 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#2" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 271 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#3" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 272 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#4" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 273 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#5" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 274 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#6" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 275 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#7" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 276 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#8" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 277 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#9" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 278 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#10" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 279 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#11" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 280 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer as stated in RFC 6901 \#12" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 281 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer used adding to the last array position" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 282 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (- used as object member name)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 283 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (multiple escaped characters)" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 284 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#1" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 285 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "valid JSON-pointer (escaped with fraction part) \#2" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 286 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#1" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 287 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#2" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 288 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (URI Fragment Identifier) \#3" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 289 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#1" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 290 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (some escaped, but not all) \#2" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 291 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#1" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 292 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (wrong escape character) \#2" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 293 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (multiple characters not escaped)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 294 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#1" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 295 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#2" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 296 - json-pointer.json: "validation of JSON-pointers (JSON String Representation)" - "not a valid JSON-pointer (isn't empty nor starts with /) \#3" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 297 - regex.json: "validation of regular expressions" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 298 - regex.json: "validation of regular expressions" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 299 - regex.json: "validation of regular expressions" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 300 - regex.json: "validation of regular expressions" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 301 - regex.json: "validation of regular expressions" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 302 - regex.json: "validation of regular expressions" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 303 - regex.json: "validation of regular expressions" - "a valid regular expression" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 304 - regex.json: "validation of regular expressions" - "a regular expression with unclosed parens is invalid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid regex", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid regex", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 305 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 306 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 307 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 308 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 309 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 310 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 311 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid upwards RJP" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 312 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid downwards RJP" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 313 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid up and then down RJP, with array index" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 314 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "a valid RJP taking the member or index name" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 315 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "an invalid RJP that is a valid JSON Pointer" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 316 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "negative prefix" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 317 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "explicit positive prefix" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 318 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "\#\# is not a valid json-pointer" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 319 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus json-pointer" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 320 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "zero cannot be followed by other digits, plus octothorpe" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 321 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "empty string" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid relative-json-pointer", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 322 - relative-json-pointer.json: "validation of Relative JSON Pointers (RJP)" - "multi-digit integer prefix" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s # 525s ok 323 - time.json: "validation of time strings" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 324 - time.json: "validation of time strings" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 325 - time.json: "validation of time strings" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 326 - time.json: "validation of time strings" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 327 - time.json: "validation of time strings" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 328 - time.json: "validation of time strings" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 329 - time.json: "validation of time strings" - "a valid time string" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 330 - time.json: "validation of time strings" - "invalid time string with extra leading zeros" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 331 - time.json: "validation of time strings" - "invalid time string with no leading zero for single digit" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 332 - time.json: "validation of time strings" - "hour, minute, second must be two digits" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 333 - time.json: "validation of time strings" - "a valid time string with leap second, Zulu" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 334 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong hour)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 335 - time.json: "validation of time strings" - "invalid leap second, Zulu (wrong minute)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 336 - time.json: "validation of time strings" - "valid leap second, zero time-offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 337 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong hour)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 338 - time.json: "validation of time strings" - "invalid leap second, zero time-offset (wrong minute)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 339 - time.json: "validation of time strings" - "valid leap second, positive time-offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 340 - time.json: "validation of time strings" - "valid leap second, large positive time-offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 341 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong hour)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 342 - time.json: "validation of time strings" - "invalid leap second, positive time-offset (wrong minute)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 343 - time.json: "validation of time strings" - "valid leap second, negative time-offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 344 - time.json: "validation of time strings" - "valid leap second, large negative time-offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 345 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong hour)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 346 - time.json: "validation of time strings" - "invalid leap second, negative time-offset (wrong minute)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 347 - time.json: "validation of time strings" - "a valid time string with second fraction" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 348 - time.json: "validation of time strings" - "a valid time string with precise second fraction" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 349 - time.json: "validation of time strings" - "a valid time string with plus offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 350 - time.json: "validation of time strings" - "a valid time string with minus offset" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 351 - time.json: "validation of time strings" - "hour, minute in time-offset must be two digits" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 352 - time.json: "validation of time strings" - "a valid time string with case-insensitive Z" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 353 - time.json: "validation of time strings" - "an invalid time string with invalid hour" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 354 - time.json: "validation of time strings" - "an invalid time string with invalid minute" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 355 - time.json: "validation of time strings" - "an invalid time string with invalid second" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 356 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong hour)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 357 - time.json: "validation of time strings" - "an invalid time string with invalid leap second (wrong minute)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 358 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset hour" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 359 - time.json: "validation of time strings" - "an invalid time string with invalid time numoffset minute" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 360 - time.json: "validation of time strings" - "an invalid time string with invalid time with both Z and numoffset" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 361 - time.json: "validation of time strings" - "an invalid offset indicator" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 362 - time.json: "validation of time strings" - "only RFC3339 not all of ISO 8601 are valid" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 363 - time.json: "validation of time strings" - "no time offset" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 364 - time.json: "validation of time strings" - "no time offset with second fraction" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 365 - time.json: "validation of time strings" - "invalid non-ASCII '২' (a Bengali 2)" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 366 - time.json: "validation of time strings" - "offset not starting with plus or minus" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 367 - time.json: "validation of time strings" - "contains letters" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid time", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 368 - unknown.json: "unknown format" - "unknown formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 369 - unknown.json: "unknown format" - "unknown formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 370 - unknown.json: "unknown format" - "unknown formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 371 - unknown.json: "unknown format" - "unknown formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 372 - unknown.json: "unknown format" - "unknown formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 373 - unknown.json: "unknown format" - "unknown formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 374 - unknown.json: "unknown format" - "unknown formats ignore strings" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s # 525s ok 375 - uri-reference.json: "validation of URI References" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 376 - uri-reference.json: "validation of URI References" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 377 - uri-reference.json: "validation of URI References" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 378 - uri-reference.json: "validation of URI References" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 379 - uri-reference.json: "validation of URI References" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 380 - uri-reference.json: "validation of URI References" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 381 - uri-reference.json: "validation of URI References" - "a valid URI" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 382 - uri-reference.json: "validation of URI References" - "a valid protocol-relative URI Reference" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 383 - uri-reference.json: "validation of URI References" - "a valid relative URI Reference" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 384 - uri-reference.json: "validation of URI References" - "an invalid URI Reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri-reference", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri-reference", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 385 - uri-reference.json: "validation of URI References" - "a valid URI Reference" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 386 - uri-reference.json: "validation of URI References" - "a valid URI fragment" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 387 - uri-reference.json: "validation of URI References" - "an invalid URI fragment" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri-reference", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri-reference", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s # 525s ok 388 - uri-template.json: "format: uri-template" - "all string formats ignore integers" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 389 - uri-template.json: "format: uri-template" - "all string formats ignore floats" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 390 - uri-template.json: "format: uri-template" - "all string formats ignore objects" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 391 - uri-template.json: "format: uri-template" - "all string formats ignore arrays" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 392 - uri-template.json: "format: uri-template" - "all string formats ignore booleans" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 393 - uri-template.json: "format: uri-template" - "all string formats ignore nulls" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 394 - uri-template.json: "format: uri-template" - "a valid uri-template" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 395 - uri-template.json: "format: uri-template" - "an invalid uri-template" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"http://example.com/dictionary/{term:1}/{term\"" 525s # schema: "{\"format\":\"uri-template\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s ok 396 - uri-template.json: "format: uri-template" - "a valid uri-template without variables" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s ok 397 - uri-template.json: "format: uri-template" - "a valid relative uri-template" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true # 525s 1..1 525s } 525s # 525s ok 398 - uri.json: "validation of URIs" - "all string formats ignore integers" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 399 - uri.json: "validation of URIs" - "all string formats ignore floats" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 400 - uri.json: "validation of URIs" - "all string formats ignore objects" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 401 - uri.json: "validation of URIs" - "all string formats ignore arrays" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 402 - uri.json: "validation of URIs" - "all string formats ignore booleans" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 403 - uri.json: "validation of URIs" - "all string formats ignore nulls" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 404 - uri.json: "validation of URIs" - "a valid URL with anchor tag" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 405 - uri.json: "validation of URIs" - "a valid URL with anchor tag and parentheses" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 406 - uri.json: "validation of URIs" - "a valid URL with URL-encoded stuff" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 407 - uri.json: "validation of URIs" - "a valid puny-coded URL " { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 408 - uri.json: "validation of URIs" - "a valid URL with many special characters" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 409 - uri.json: "validation of URIs" - "a valid URL based on IPv4" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 410 - uri.json: "validation of URIs" - "a valid URL with ftp scheme" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 411 - uri.json: "validation of URIs" - "a valid URL for a simple text file" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 412 - uri.json: "validation of URIs" - "a valid URL " { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 413 - uri.json: "validation of URIs" - "a valid mailto URI" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 414 - uri.json: "validation of URIs" - "a valid newsgroup URI" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 415 - uri.json: "validation of URIs" - "a valid tel URI" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 416 - uri.json: "validation of URIs" - "a valid URN" { 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s ok 1 - test passes: data is valid: true 525s 1..1 525s } 525s ok 417 - uri.json: "validation of URIs" - "an invalid protocol-relative URI Reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 418 - uri.json: "validation of URIs" - "an invalid relative URI Reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 419 - uri.json: "validation of URIs" - "an invalid URI" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 420 - uri.json: "validation of URIs" - "an invalid URI though valid URI reference" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 421 - uri.json: "validation of URIs" - "an invalid URI with spaces" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 422 - uri.json: "validation of URIs" - "an invalid URI with spaces and missing scheme" { 525s # result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s # short-circuited result: { 525s # "errors": [ 525s # { 525s # "error": "not a valid uri", 525s # "instanceLocation": "", 525s # "keywordLocation": "/format" 525s # } 525s # ], 525s # "valid": false 525s # } 525s ok 1 - test passes: data is valid: false 525s 1..1 525s } 525s ok 423 - uri.json: "validation of URIs" - "an invalid URI with comma in scheme" { # TODO Test marked TODO via "todo_tests" 525s # result: { 525s # "valid": true 525s # } 525s # short-circuited result: { 525s # "valid": true 525s # } 525s not ok 1 - evaluation result is incorrect # 525s # Failed test (with amnesty) 'evaluation result is incorrect' 525s # at t/zzz-acceptance-draft7-format.t line 68. 525s # expected false; got true 525s # data: "\"bar,baz:foo\"" 525s # schema: "{\"format\":\"uri\"}" 525s # result: { 525s # "valid": true 525s # } 525s 1..1 525s } 525s # 525s # 525s # generated with: Test::JSON::Schema::Acceptance 1.026 525s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 525s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 525s # specification version: draft7 525s # using custom test directory: /optional/format 525s # optional tests included: yes 525s # 525s # filename pass todo-fail fail 525s # --------------------------------------------------------------- 525s # date-time.json 25 0 0 525s # date.json 47 0 0 525s # email.json 15 0 0 525s # hostname.json 18 4 0 525s # idn-email.json 10 0 0 525s # idn-hostname.json 35 20 0 525s # ipv4.json 16 0 0 525s # ipv6.json 40 0 0 525s # iri-reference.json 11 2 0 525s # iri.json 14 1 0 525s # json-pointer.json 38 0 0 525s # regex.json 8 0 0 525s # relative-json-pointer.json 18 0 0 525s # time.json 45 0 0 525s # unknown.json 7 0 0 525s # uri-reference.json 13 0 0 525s # uri-template.json 9 1 0 525s # uri.json 25 1 0 525s # --------------------------------------------------------------- 525s # TOTAL 394 29 0 525s # 525s # Congratulations, all non-optional tests are passing! 525s # 525s ok 424 - no leaks in the main evaluator object 525s ok 425 - no leaks in the short-circuiting evaluator object 525s 1..425 525s ok 532s t/zzz-acceptance-draft7.t ............... 532s # AUTHOR_TESTING: 532s # AUTOMATED_TESTING: 1 532s # EXTENDED_TESTING: 532s # NO_TODO: 532s # TEST_DIR: 532s # NO_SHORT_CIRCUIT: 532s # 532s # adding resources from /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/remotes with the base URI "http://localhost:1234"... 532s # running tests in /usr/share/perl5/auto/share/dist/Test-JSON-Schema-Acceptance/tests/draft7 against draft7... 532s # 532s ok 1 - additionalItems.json: "additionalItems as schema" - "additional items match schema" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 2 - additionalItems.json: "additionalItems as schema" - "additional items do not match schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 3 - additionalItems.json: "when items is schema, additionalItems does nothing" - "valid with a array of type integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 4 - additionalItems.json: "when items is schema, additionalItems does nothing" - "invalid with a array of mixed types" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/type" 532s # }, 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 5 - additionalItems.json: "when items is schema, boolean additionalItems does nothing" - "all items match schema" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 6 - additionalItems.json: "array of items with no additionalItems permitted" - "empty array" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 7 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (1)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 8 - additionalItems.json: "array of items with no additionalItems permitted" - "fewer number of items present (2)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 9 - additionalItems.json: "array of items with no additionalItems permitted" - "equal number of items present" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 10 - additionalItems.json: "array of items with no additionalItems permitted" - "additional items are not permitted" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 11 - additionalItems.json: "additionalItems as false without items" - "items defaults to empty schema so everything is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 12 - additionalItems.json: "additionalItems as false without items" - "ignores non-arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 13 - additionalItems.json: "additionalItems are allowed by default" - "only the first item is validated" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 14 - additionalItems.json: "additionalItems does not look in applicators, valid case" - "items defined in allOf are not examined" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 15 - additionalItems.json: "additionalItems does not look in applicators, invalid case" - "items defined in allOf are not examined" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 16 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "valid items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 17 - additionalItems.json: "items validation adjusts the starting index for additionalItems" - "wrong type of second item" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 18 - additionalItems.json: "additionalItems with heterogeneous array" - "heterogeneous invalid instance" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 19 - additionalItems.json: "additionalItems with heterogeneous array" - "valid instance" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 20 - additionalItems.json: "additionalItems with null instance elements" - "allows null elements" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 21 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "no additional properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 22 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "an additional property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 23 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 24 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 25 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 26 - additionalProperties.json: "additionalProperties being false does not allow other properties" - "patternProperties are not additional properties" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 27 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "matching the pattern is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 28 - additionalProperties.json: "non-ASCII pattern with additionalProperties" - "not matching the pattern is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/élmény", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/élmény", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 29 - additionalProperties.json: "additionalProperties with schema" - "no additional properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 30 - additionalProperties.json: "additionalProperties with schema" - "an additional valid property is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 31 - additionalProperties.json: "additionalProperties with schema" - "an additional invalid property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 32 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional valid property is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 33 - additionalProperties.json: "additionalProperties can exist by itself" - "an additional invalid property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 34 - additionalProperties.json: "additionalProperties are allowed by default" - "additional properties are allowed" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 35 - additionalProperties.json: "additionalProperties does not look in applicators" - "properties defined in allOf are not examined" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 36 - additionalProperties.json: "additionalProperties with null valued instance properties" - "allows null values" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 37 - allOf.json: "allOf" - "allOf" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 38 - allOf.json: "allOf" - "mismatch second" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 39 - allOf.json: "allOf" - "mismatch first" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/required" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/required" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 40 - allOf.json: "allOf" - "wrong type" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/properties" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/properties" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 41 - allOf.json: "allOf with base schema" - "valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 42 - allOf.json: "allOf with base schema" - "mismatch base schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 43 - allOf.json: "allOf with base schema" - "mismatch first allOf" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 44 - allOf.json: "allOf with base schema" - "mismatch second allOf" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: baz", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/required" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: baz", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/required" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 45 - allOf.json: "allOf with base schema" - "mismatch both" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "object is missing property: baz", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/required" 532s # }, 532s # { 532s # "error": "subschemas 0, 1 are not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/required" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 46 - allOf.json: "allOf simple types" - "valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 47 - allOf.json: "allOf simple types" - "mismatch one" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 30", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/maximum" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 30", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/maximum" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 48 - allOf.json: "allOf with boolean schemas, all true" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 49 - allOf.json: "allOf with boolean schemas, some false" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 50 - allOf.json: "allOf with boolean schemas, all false" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1" 532s # }, 532s # { 532s # "error": "subschemas 0, 1 are not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 51 - allOf.json: "allOf with one empty schema" - "any data is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 52 - allOf.json: "allOf with two empty schemas" - "any data is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 53 - allOf.json: "allOf with the first empty schema" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 54 - allOf.json: "allOf with the first empty schema" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/type" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/type" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 55 - allOf.json: "allOf with the last empty schema" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 56 - allOf.json: "allOf with the last empty schema" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 57 - allOf.json: "nested allOf, to check validation semantics" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 58 - allOf.json: "nested allOf, to check validation semantics" - "anything non-null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/allOf/0/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/allOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/allOf/0/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/allOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 59 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: false" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 60 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: false, oneOf: true" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 61 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: false" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 62 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: false, anyOf: true, oneOf: true" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 63 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: false" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 64 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: false, oneOf: true" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 65 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: false" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/multipleOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 66 - allOf.json: "allOf combined with anyOf, oneOf" - "allOf: true, anyOf: true, oneOf: true" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 67 - anyOf.json: "anyOf" - "first anyOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 68 - anyOf.json: "anyOf" - "second anyOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 69 - anyOf.json: "anyOf" - "both anyOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 70 - anyOf.json: "anyOf" - "neither anyOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/type" 532s # }, 532s # { 532s # "error": "value is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/minimum" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/type" 532s # }, 532s # { 532s # "error": "value is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/minimum" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 71 - anyOf.json: "anyOf with base schema" - "mismatch base schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 72 - anyOf.json: "anyOf with base schema" - "one anyOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 73 - anyOf.json: "anyOf with base schema" - "both anyOf invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/maxLength" 532s # }, 532s # { 532s # "error": "length is less than 4", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/minLength" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/maxLength" 532s # }, 532s # { 532s # "error": "length is less than 4", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/minLength" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 74 - anyOf.json: "anyOf with boolean schemas, all true" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 75 - anyOf.json: "anyOf with boolean schemas, some true" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 76 - anyOf.json: "anyOf with boolean schemas, all false" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 77 - anyOf.json: "anyOf complex types" - "first anyOf valid (complex)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 78 - anyOf.json: "anyOf complex types" - "second anyOf valid (complex)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 79 - anyOf.json: "anyOf complex types" - "both anyOf valid (complex)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 80 - anyOf.json: "anyOf complex types" - "neither anyOf valid (complex)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/anyOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/properties" 532s # }, 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/anyOf/1/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/properties" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/anyOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/properties" 532s # }, 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/anyOf/1/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/properties" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 81 - anyOf.json: "anyOf with one empty schema" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 82 - anyOf.json: "anyOf with one empty schema" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 83 - anyOf.json: "nested anyOf, to check validation semantics" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 84 - anyOf.json: "nested anyOf, to check validation semantics" - "anything non-null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/anyOf/0/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/anyOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/anyOf/0/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/anyOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 85 - boolean_schema.json: "boolean schema 'true'" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 86 - boolean_schema.json: "boolean schema 'true'" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 87 - boolean_schema.json: "boolean schema 'true'" - "boolean true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 88 - boolean_schema.json: "boolean schema 'true'" - "boolean false is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 89 - boolean_schema.json: "boolean schema 'true'" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 90 - boolean_schema.json: "boolean schema 'true'" - "object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 91 - boolean_schema.json: "boolean schema 'true'" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 92 - boolean_schema.json: "boolean schema 'true'" - "array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 93 - boolean_schema.json: "boolean schema 'true'" - "empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 94 - boolean_schema.json: "boolean schema 'false'" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 95 - boolean_schema.json: "boolean schema 'false'" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 96 - boolean_schema.json: "boolean schema 'false'" - "boolean true is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 97 - boolean_schema.json: "boolean schema 'false'" - "boolean false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 98 - boolean_schema.json: "boolean schema 'false'" - "null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 99 - boolean_schema.json: "boolean schema 'false'" - "object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 100 - boolean_schema.json: "boolean schema 'false'" - "empty object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 101 - boolean_schema.json: "boolean schema 'false'" - "array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 102 - boolean_schema.json: "boolean schema 'false'" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 103 - const.json: "const validation" - "same value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 104 - const.json: "const validation" - "another value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 105 - const.json: "const validation" - "another type is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 106 - const.json: "const with object" - "same object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 107 - const.json: "const with object" - "same object with different property order is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 108 - const.json: "const with object" - "another object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 109 - const.json: "const with object" - "another type is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 110 - const.json: "const with array" - "same array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 111 - const.json: "const with array" - "another array item is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs object)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs object)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 112 - const.json: "const with array" - "array with additional items is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 113 - const.json: "const with null" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 114 - const.json: "const with null" - "not null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 115 - const.json: "const with false does not match 0" - "false is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 116 - const.json: "const with false does not match 0" - "integer zero is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 117 - const.json: "const with false does not match 0" - "float zero is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 118 - const.json: "const with true does not match 1" - "true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 119 - const.json: "const with true does not match 1" - "integer one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 120 - const.json: "const with true does not match 1" - "float one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 121 - const.json: "const with [false] does not match [0]" - "[false] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 122 - const.json: "const with [false] does not match [0]" - "[0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 123 - const.json: "const with [false] does not match [0]" - "[0.0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 124 - const.json: "const with [true] does not match [1]" - "[true] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 125 - const.json: "const with [true] does not match [1]" - "[1] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 126 - const.json: "const with [true] does not match [1]" - "[1.0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 127 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": false} is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 128 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0} is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 129 - const.json: "const with {"a": false} does not match {"a": 0}" - "{"a": 0.0} is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 130 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": true} is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 131 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1} is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 132 - const.json: "const with {"a": true} does not match {"a": 1}" - "{"a": 1.0} is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (at '/a': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 133 - const.json: "const with 0 does not match other zero-like types" - "false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 134 - const.json: "const with 0 does not match other zero-like types" - "integer zero is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 135 - const.json: "const with 0 does not match other zero-like types" - "float zero is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 136 - const.json: "const with 0 does not match other zero-like types" - "empty object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 137 - const.json: "const with 0 does not match other zero-like types" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 138 - const.json: "const with 0 does not match other zero-like types" - "empty string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 139 - const.json: "const with 1 does not match true" - "true is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 140 - const.json: "const with 1 does not match true" - "integer one is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 141 - const.json: "const with 1 does not match true" - "float one is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 142 - const.json: "const with -2.0 matches integer and float types" - "integer -2 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 143 - const.json: "const with -2.0 matches integer and float types" - "integer 2 is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 144 - const.json: "const with -2.0 matches integer and float types" - "float -2.0 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 145 - const.json: "const with -2.0 matches integer and float types" - "float 2.0 is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 146 - const.json: "const with -2.0 matches integer and float types" - "float -2.00001 is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 147 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 148 - const.json: "float and integers are equal up to 64-bit representation limits" - "integer minus one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 149 - const.json: "float and integers are equal up to 64-bit representation limits" - "float is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 150 - const.json: "float and integers are equal up to 64-bit representation limits" - "float minus one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 151 - const.json: "nul characters in strings" - "match string with nul" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 152 - const.json: "nul characters in strings" - "do not match string lacking nul" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/const" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 153 - contains.json: "contains keyword validation" - "array with item matching schema (5) is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 154 - contains.json: "contains keyword validation" - "array with item matching schema (6) is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 155 - contains.json: "contains keyword validation" - "array with two items matching schema (5, 6) is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 156 - contains.json: "contains keyword validation" - "array without items matching schema is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "value is less than 5", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 157 - contains.json: "contains keyword validation" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 158 - contains.json: "contains keyword validation" - "not array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 159 - contains.json: "contains keyword with const keyword" - "array with item 5 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 160 - contains.json: "contains keyword with const keyword" - "array with two items 5 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 161 - contains.json: "contains keyword with const keyword" - "array without item 5 is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/contains/const" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 162 - contains.json: "contains keyword with boolean schema true" - "any non-empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 163 - contains.json: "contains keyword with boolean schema true" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 164 - contains.json: "contains keyword with boolean schema false" - "any non-empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 165 - contains.json: "contains keyword with boolean schema false" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 166 - contains.json: "contains keyword with boolean schema false" - "non-arrays are valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 167 - contains.json: "items + contains" - "matches items, does not match contains" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 168 - contains.json: "items + contains" - "does not match items, matches contains" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 169 - contains.json: "items + contains" - "matches both items and contains" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 170 - contains.json: "items + contains" - "matches neither items nor contains" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "value is not a multiple of 3", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/contains/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 171 - contains.json: "contains with false if subschema" - "any non-empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 172 - contains.json: "contains with false if subschema" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is not valid against any item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contains" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 173 - contains.json: "contains with null instance elements" - "allows null items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 174 - default.json: "invalid type for default" - "valid when property is specified" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 175 - default.json: "invalid type for default" - "still valid when the invalid default is used" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 176 - default.json: "invalid string value for default" - "valid when property is specified" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 177 - default.json: "invalid string value for default" - "still valid when the invalid default is used" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s 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)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s 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)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 3", 532s # "instanceLocation": "/alpha", 532s # "keywordLocation": "/properties/alpha/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 3", 532s # "instanceLocation": "/alpha", 532s # "keywordLocation": "/properties/alpha/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s 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" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 181 - definitions.json: "validate definition against metaschema" - "valid definition schema" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 182 - definitions.json: "validate definition against metaschema" - "invalid definition schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 532s # "error": "value does not match", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 532s # "error": "got integer, not array", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/definitions/foo", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "/definitions", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/simpleTypes/enum", 532s # "error": "value does not match", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/0/$ref/enum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf/1/type", 532s # "error": "got integer, not array", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf/1/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/type/anyOf", 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "/definitions/foo/type", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties/type/anyOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/definitions/foo", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties/definitions/additionalProperties", 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "/definitions", 532s # "keywordLocation": "/$ref/properties/definitions/additionalProperties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 183 - dependencies.json: "dependencies" - "neither" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 184 - dependencies.json: "dependencies" - "nondependant" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 185 - dependencies.json: "dependencies" - "with dependency" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 186 - dependencies.json: "dependencies" - "missing dependency" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 187 - dependencies.json: "dependencies" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 188 - dependencies.json: "dependencies" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 189 - dependencies.json: "dependencies" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 190 - dependencies.json: "dependencies with empty array" - "empty object" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 191 - dependencies.json: "dependencies with empty array" - "object with one property" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 192 - dependencies.json: "dependencies with empty array" - "non-object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 193 - dependencies.json: "multiple dependencies" - "neither" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 194 - dependencies.json: "multiple dependencies" - "nondependants" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 195 - dependencies.json: "multiple dependencies" - "with dependencies" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 196 - dependencies.json: "multiple dependencies" - "missing dependency" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 197 - dependencies.json: "multiple dependencies" - "missing other dependency" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 198 - dependencies.json: "multiple dependencies" - "missing both dependencies" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: foo, bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: foo, bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/quux" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 199 - dependencies.json: "multiple dependencies subschema" - "valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 200 - dependencies.json: "multiple dependencies subschema" - "no dependency" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 201 - dependencies.json: "multiple dependencies subschema" - "wrong type" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/bar/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/bar/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 202 - dependencies.json: "multiple dependencies subschema" - "wrong type other" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/dependencies/bar/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/dependencies/bar/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 203 - dependencies.json: "multiple dependencies subschema" - "wrong type both" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/dependencies/bar/properties/bar/type" 532s # }, 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/bar/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/dependencies/bar/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar/properties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 204 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 205 - dependencies.json: "dependencies with boolean subschemas" - "object with property having schema false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 206 - dependencies.json: "dependencies with boolean subschemas" - "object with both properties is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 207 - dependencies.json: "dependencies with boolean subschemas" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 208 - dependencies.json: "dependencies with escaped characters" - "valid object 1" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 209 - dependencies.json: "dependencies with escaped characters" - "valid object 2" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 210 - dependencies.json: "dependencies with escaped characters" - "valid object 3" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 211 - dependencies.json: "dependencies with escaped characters" - "invalid object 1" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo\rbar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\nbar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo\rbar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\nbar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 212 - dependencies.json: "dependencies with escaped characters" - "invalid object 2" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 4 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 4 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\tbar/minProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 213 - dependencies.json: "dependencies with escaped characters" - "invalid object 3" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo\"bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo'bar/required" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo\"bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo'bar/required" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 214 - dependencies.json: "dependencies with escaped characters" - "invalid object 4" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo'bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\"bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo'bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo\"bar" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 215 - dependencies.json: "dependent subschema incompatible with root" - "matches root" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 216 - dependencies.json: "dependent subschema incompatible with root" - "matches dependency" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 217 - dependencies.json: "dependent subschema incompatible with root" - "matches both" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies/foo/additionalProperties" 532s # }, 532s # { 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/dependencies" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 218 - dependencies.json: "dependent subschema incompatible with root" - "no dependency" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 219 - enum.json: "simple enum validation" - "one of the enum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 220 - enum.json: "simple enum validation" - "something else is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 221 - enum.json: "heterogeneous enum validation" - "one of the enum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 222 - enum.json: "heterogeneous enum validation" - "something else is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 223 - enum.json: "heterogeneous enum validation" - "objects are deep compared" { 532s # result: { 532s # "errors": [ 532s # { 532s # "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)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "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)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 224 - enum.json: "heterogeneous enum validation" - "valid object matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 225 - enum.json: "heterogeneous enum validation" - "extra properties in object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 226 - enum.json: "heterogeneous enum-with-null validation" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 227 - enum.json: "heterogeneous enum-with-null validation" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 228 - enum.json: "heterogeneous enum-with-null validation" - "something else is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 229 - enum.json: "enums in properties" - "both properties are valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 230 - enum.json: "enums in properties" - "wrong foo value" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/enum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/enum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 231 - enum.json: "enums in properties" - "wrong bar value" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/enum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/enum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 232 - enum.json: "enums in properties" - "missing optional property is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 233 - enum.json: "enums in properties" - "missing required property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 234 - enum.json: "enums in properties" - "missing all properties is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 235 - enum.json: "enum with escaped characters" - "member 1 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 236 - enum.json: "enum with escaped characters" - "member 2 is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 237 - enum.json: "enum with escaped characters" - "another string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 238 - enum.json: "enum with false does not match 0" - "false is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 239 - enum.json: "enum with false does not match 0" - "integer zero is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 240 - enum.json: "enum with false does not match 0" - "float zero is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 241 - enum.json: "enum with [false] does not match [0]" - "[false] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 242 - enum.json: "enum with [false] does not match [0]" - "[0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 243 - enum.json: "enum with [false] does not match [0]" - "[0.0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 244 - enum.json: "enum with true does not match 1" - "true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 245 - enum.json: "enum with true does not match 1" - "integer one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 246 - enum.json: "enum with true does not match 1" - "float one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 247 - enum.json: "enum with [true] does not match [1]" - "[true] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 248 - enum.json: "enum with [true] does not match [1]" - "[1] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 249 - enum.json: "enum with [true] does not match [1]" - "[1.0] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: integer vs boolean)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 250 - enum.json: "enum with 0 does not match false" - "false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 251 - enum.json: "enum with 0 does not match false" - "integer zero is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 252 - enum.json: "enum with 0 does not match false" - "float zero is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 253 - enum.json: "enum with [0] does not match [false]" - "[false] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 254 - enum.json: "enum with [0] does not match [false]" - "[0] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 255 - enum.json: "enum with [0] does not match [false]" - "[0.0] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 256 - enum.json: "enum with 1 does not match true" - "true is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 257 - enum.json: "enum with 1 does not match true" - "integer one is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 258 - enum.json: "enum with 1 does not match true" - "float one is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 259 - enum.json: "enum with [1] does not match [true]" - "[true] is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match (from enum 0 at '/0': wrong type: boolean vs integer)", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 260 - enum.json: "enum with [1] does not match [true]" - "[1] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 261 - enum.json: "enum with [1] does not match [true]" - "[1.0] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 262 - enum.json: "nul characters in strings" - "match string with nul" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 263 - enum.json: "nul characters in strings" - "do not match string lacking nul" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 264 - exclusiveMaximum.json: "exclusiveMaximum validation" - "below the exclusiveMaximum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 265 - exclusiveMaximum.json: "exclusiveMaximum validation" - "boundary point is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 266 - exclusiveMaximum.json: "exclusiveMaximum validation" - "above the exclusiveMaximum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 267 - exclusiveMaximum.json: "exclusiveMaximum validation" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 268 - exclusiveMinimum.json: "exclusiveMinimum validation" - "above the exclusiveMinimum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 269 - exclusiveMinimum.json: "exclusiveMinimum validation" - "boundary point is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 270 - exclusiveMinimum.json: "exclusiveMinimum validation" - "below the exclusiveMinimum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 271 - exclusiveMinimum.json: "exclusiveMinimum validation" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 272 - format.json: "email format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 273 - format.json: "email format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 274 - format.json: "email format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 275 - format.json: "email format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 276 - format.json: "email format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 277 - format.json: "email format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 278 - format.json: "idn-email format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 279 - format.json: "idn-email format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 280 - format.json: "idn-email format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 281 - format.json: "idn-email format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 282 - format.json: "idn-email format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 283 - format.json: "idn-email format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 284 - format.json: "regex format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 285 - format.json: "regex format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 286 - format.json: "regex format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 287 - format.json: "regex format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 288 - format.json: "regex format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 289 - format.json: "regex format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 290 - format.json: "ipv4 format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 291 - format.json: "ipv4 format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 292 - format.json: "ipv4 format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 293 - format.json: "ipv4 format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 294 - format.json: "ipv4 format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 295 - format.json: "ipv4 format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 296 - format.json: "ipv6 format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 297 - format.json: "ipv6 format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 298 - format.json: "ipv6 format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 299 - format.json: "ipv6 format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 300 - format.json: "ipv6 format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 301 - format.json: "ipv6 format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 302 - format.json: "idn-hostname format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 303 - format.json: "idn-hostname format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 304 - format.json: "idn-hostname format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 305 - format.json: "idn-hostname format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 306 - format.json: "idn-hostname format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 307 - format.json: "idn-hostname format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 308 - format.json: "hostname format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 309 - format.json: "hostname format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 310 - format.json: "hostname format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 311 - format.json: "hostname format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 312 - format.json: "hostname format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 313 - format.json: "hostname format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 314 - format.json: "date format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 315 - format.json: "date format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 316 - format.json: "date format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 317 - format.json: "date format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 318 - format.json: "date format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 319 - format.json: "date format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 320 - format.json: "date-time format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 321 - format.json: "date-time format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 322 - format.json: "date-time format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 323 - format.json: "date-time format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 324 - format.json: "date-time format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 325 - format.json: "date-time format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 326 - format.json: "time format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 327 - format.json: "time format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 328 - format.json: "time format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 329 - format.json: "time format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 330 - format.json: "time format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 331 - format.json: "time format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 332 - format.json: "json-pointer format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 333 - format.json: "json-pointer format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 334 - format.json: "json-pointer format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 335 - format.json: "json-pointer format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 336 - format.json: "json-pointer format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 337 - format.json: "json-pointer format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 338 - format.json: "relative-json-pointer format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 339 - format.json: "relative-json-pointer format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 340 - format.json: "relative-json-pointer format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 341 - format.json: "relative-json-pointer format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 342 - format.json: "relative-json-pointer format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 343 - format.json: "relative-json-pointer format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 344 - format.json: "iri format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 345 - format.json: "iri format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 346 - format.json: "iri format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 347 - format.json: "iri format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 348 - format.json: "iri format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 349 - format.json: "iri format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 350 - format.json: "iri-reference format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 351 - format.json: "iri-reference format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 352 - format.json: "iri-reference format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 353 - format.json: "iri-reference format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 354 - format.json: "iri-reference format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 355 - format.json: "iri-reference format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 356 - format.json: "uri format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 357 - format.json: "uri format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 358 - format.json: "uri format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 359 - format.json: "uri format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 360 - format.json: "uri format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 361 - format.json: "uri format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 362 - format.json: "uri-reference format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 363 - format.json: "uri-reference format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 364 - format.json: "uri-reference format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 365 - format.json: "uri-reference format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 366 - format.json: "uri-reference format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 367 - format.json: "uri-reference format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 368 - format.json: "uri-template format" - "all string formats ignore integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 369 - format.json: "uri-template format" - "all string formats ignore floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 370 - format.json: "uri-template format" - "all string formats ignore objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 371 - format.json: "uri-template format" - "all string formats ignore arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 372 - format.json: "uri-template format" - "all string formats ignore booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 373 - format.json: "uri-template format" - "all string formats ignore nulls" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 374 - if-then-else.json: "ignore if without then or else" - "valid when valid against lone if" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 375 - if-then-else.json: "ignore if without then or else" - "valid when invalid against lone if" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 376 - if-then-else.json: "ignore then without if" - "valid when valid against lone then" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 377 - if-then-else.json: "ignore then without if" - "valid when invalid against lone then" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 378 - if-then-else.json: "ignore else without if" - "valid when valid against lone else" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 379 - if-then-else.json: "ignore else without if" - "valid when invalid against lone else" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 380 - if-then-else.json: "if and then without else" - "valid through then" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 381 - if-then-else.json: "if and then without else" - "invalid through then" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -10", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -10", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 382 - if-then-else.json: "if and then without else" - "valid when if test fails" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 383 - if-then-else.json: "if and else without then" - "valid when if test passes" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 384 - if-then-else.json: "if and else without then" - "valid through else" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 385 - if-then-else.json: "if and else without then" - "invalid through else" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 386 - if-then-else.json: "validate against correct branch, then vs else" - "valid through then" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 387 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through then" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -10", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -10", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/minimum" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 388 - if-then-else.json: "validate against correct branch, then vs else" - "valid through else" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 389 - if-then-else.json: "validate against correct branch, then vs else" - "invalid through else" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/multipleOf" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 390 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through then" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 391 - if-then-else.json: "non-interference across combined schemas" - "valid, but would have been invalid through else" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 392 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (valid)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 393 - if-then-else.json: "if with boolean schema true" - "boolean schema true in if always chooses the then path (invalid)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 394 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (invalid)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 395 - if-then-else.json: "if with boolean schema false" - "boolean schema false in if always chooses the else path (valid)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 396 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "yes redirects to then and passes" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 397 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "other redirects to else and passes" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 398 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "no redirects to then and fails" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/then" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 399 - if-then-else.json: "if appears at the end when serialized (keyword processing sequence)" - "invalid redirects to else and fails" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s 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" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s 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" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/int/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/int/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/allOf/1/additionalProperties/$ref/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/additionalProperties" 532s # }, 532s # { 532s # "error": "subschemas 0, 1 are not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/int/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/allOf/0/properties/foo/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/properties" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 402 - items.json: "a schema given for items" - "valid items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 403 - items.json: "a schema given for items" - "wrong type of items" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 404 - items.json: "a schema given for items" - "ignores non-arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 405 - items.json: "a schema given for items" - "JavaScript pseudo-array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 406 - items.json: "an array of schemas for items" - "correct types" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 407 - items.json: "an array of schemas for items" - "wrong types" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/type" 532s # }, 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/1/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 408 - items.json: "an array of schemas for items" - "incomplete array of items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 409 - items.json: "an array of schemas for items" - "array with additional items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 410 - items.json: "an array of schemas for items" - "empty array" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 411 - items.json: "an array of schemas for items" - "JavaScript pseudo-array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 412 - items.json: "items with boolean schema (true)" - "any array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 413 - items.json: "items with boolean schema (true)" - "empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 414 - items.json: "items with boolean schema (false)" - "any non-empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items" 532s # }, 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items" 532s # }, 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 415 - items.json: "items with boolean schema (false)" - "empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 416 - items.json: "items with boolean schemas" - "array with one item is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 417 - items.json: "items with boolean schemas" - "array with two items is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/1" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "item not permitted", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/1" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 418 - items.json: "items with boolean schemas" - "empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 419 - items.json: "items and subitems" - "valid items" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 420 - items.json: "items and subitems" - "too many items" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/3", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 421 - items.json: "items and subitems" - "too many sub-items" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/0/2", 532s # "keywordLocation": "/items/0/$ref/additionalItems" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/additionalItems" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/0/2", 532s # "keywordLocation": "/items/0/$ref/additionalItems" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/additionalItems", 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/additionalItems" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 422 - items.json: "items and subitems" - "wrong item" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/type", 532s # "error": "got object, not array", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/type", 532s # "error": "got object, not array", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 423 - items.json: "items and subitems" - "wrong sub-item" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/items", 532s # "error": "not all items are valid", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/items" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/sub-item/required", 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/0/$ref/items/0/$ref/required" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/item/items", 532s # "error": "not all items are valid", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/0/$ref/items" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 424 - items.json: "items and subitems" - "fewer items is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 425 - items.json: "nested items" - "valid nested array" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 426 - items.json: "nested items" - "nested array with invalid type" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/0/0/0/0", 532s # "keywordLocation": "/items/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0/0", 532s # "keywordLocation": "/items/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/0/0/0/0", 532s # "keywordLocation": "/items/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0/0", 532s # "keywordLocation": "/items/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 427 - items.json: "nested items" - "not deep enough" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/0/0/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/0/1/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/1", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/0/2/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/2", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/1/0/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/1/0", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/1/1/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/1/1", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/1/2/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/1/2", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "/0/0/0", 532s # "keywordLocation": "/items/items/items/type" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 428 - items.json: "single-form items with null instance elements" - "allows null elements" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 429 - items.json: "array-form items with null instance elements" - "allows null elements" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 430 - maxItems.json: "maxItems validation" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 431 - maxItems.json: "maxItems validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 432 - maxItems.json: "maxItems validation" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 2 items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 2 items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 433 - maxItems.json: "maxItems validation" - "ignores non-arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 434 - maxItems.json: "maxItems validation with a decimal" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 435 - maxItems.json: "maxItems validation with a decimal" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 2 items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 2 items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 436 - maxLength.json: "maxLength validation" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 437 - maxLength.json: "maxLength validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 438 - maxLength.json: "maxLength validation" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 439 - maxLength.json: "maxLength validation" - "ignores non-strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 440 - maxLength.json: "maxLength validation" - "two graphemes is long enough" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 441 - maxLength.json: "maxLength validation with a decimal" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 442 - maxLength.json: "maxLength validation with a decimal" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 443 - maxProperties.json: "maxProperties validation" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 444 - maxProperties.json: "maxProperties validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 445 - maxProperties.json: "maxProperties validation" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 2 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 2 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 446 - maxProperties.json: "maxProperties validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 447 - maxProperties.json: "maxProperties validation" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 448 - maxProperties.json: "maxProperties validation" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 449 - maxProperties.json: "maxProperties validation with a decimal" - "shorter is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 450 - maxProperties.json: "maxProperties validation with a decimal" - "too long is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 2 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 2 properties", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 451 - maxProperties.json: "maxProperties = 0 means the object is empty" - "no properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 452 - maxProperties.json: "maxProperties = 0 means the object is empty" - "one property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 0 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has more than 0 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maxProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 453 - maximum.json: "maximum validation" - "below the maximum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 454 - maximum.json: "maximum validation" - "boundary point is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 455 - maximum.json: "maximum validation" - "above the maximum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 3", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 456 - maximum.json: "maximum validation" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 457 - maximum.json: "maximum validation with unsigned integer" - "below the maximum is invalid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 458 - maximum.json: "maximum validation with unsigned integer" - "boundary point integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 459 - maximum.json: "maximum validation with unsigned integer" - "boundary point float is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 460 - maximum.json: "maximum validation with unsigned integer" - "above the maximum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 300", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 300", 532s # "instanceLocation": "", 532s # "keywordLocation": "/maximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 461 - minItems.json: "minItems validation" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 462 - minItems.json: "minItems validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 463 - minItems.json: "minItems validation" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 1 item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 1 item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 464 - minItems.json: "minItems validation" - "ignores non-arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 465 - minItems.json: "minItems validation with a decimal" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 466 - minItems.json: "minItems validation with a decimal" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 1 item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 1 item", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 467 - minLength.json: "minLength validation" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 468 - minLength.json: "minLength validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 469 - minLength.json: "minLength validation" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 470 - minLength.json: "minLength validation" - "ignores non-strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 471 - minLength.json: "minLength validation" - "one grapheme is not long enough" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 472 - minLength.json: "minLength validation with a decimal" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 473 - minLength.json: "minLength validation with a decimal" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minLength" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 474 - minProperties.json: "minProperties validation" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 475 - minProperties.json: "minProperties validation" - "exact length is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 476 - minProperties.json: "minProperties validation" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 1 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 1 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 477 - minProperties.json: "minProperties validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 478 - minProperties.json: "minProperties validation" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 479 - minProperties.json: "minProperties validation" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 480 - minProperties.json: "minProperties validation with a decimal" - "longer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 481 - minProperties.json: "minProperties validation with a decimal" - "too short is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 1 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object has fewer than 1 property", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 482 - minimum.json: "minimum validation" - "above the minimum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 483 - minimum.json: "minimum validation" - "boundary point is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 484 - minimum.json: "minimum validation" - "below the minimum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than 1.1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 485 - minimum.json: "minimum validation" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 486 - minimum.json: "minimum validation with signed integer" - "negative above the minimum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 487 - minimum.json: "minimum validation with signed integer" - "positive above the minimum is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 488 - minimum.json: "minimum validation with signed integer" - "boundary point is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 489 - minimum.json: "minimum validation with signed integer" - "boundary point with float is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 490 - minimum.json: "minimum validation with signed integer" - "float below the minimum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 491 - minimum.json: "minimum validation with signed integer" - "int below the minimum is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than -2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/minimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 492 - minimum.json: "minimum validation with signed integer" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 493 - multipleOf.json: "by int" - "int by int" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 494 - multipleOf.json: "by int" - "int by int fail" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 495 - multipleOf.json: "by int" - "ignores non-numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 496 - multipleOf.json: "by number" - "zero is multiple of anything" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 497 - multipleOf.json: "by number" - "4.5 is multiple of 1.5" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 498 - multipleOf.json: "by number" - "35 is not multiple of 1.5" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 1.5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 1.5", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 499 - multipleOf.json: "by small number" - "0.0075 is multiple of 0.0001" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 500 - multipleOf.json: "by small number" - "0.00751 is not multiple of 0.0001" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 0.0001", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 0.0001", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 501 - multipleOf.json: "float division = inf" - "always invalid, but naive implementations may raise an overflow error" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 0.123456789", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is not a multiple of 0.123456789", 532s # "instanceLocation": "", 532s # "keywordLocation": "/multipleOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 502 - multipleOf.json: "small multiple of large integer" - "any integer is a multiple of 1e-8" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 503 - not.json: "not" - "allowed" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 504 - not.json: "not" - "disallowed" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 505 - not.json: "not multiple types" - "valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 506 - not.json: "not multiple types" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 507 - not.json: "not multiple types" - "other mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 508 - not.json: "not more complex schema" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 509 - not.json: "not more complex schema" - "other match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 510 - not.json: "not more complex schema" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 511 - not.json: "forbidden property" - "property present" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/not" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/not" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 512 - not.json: "forbidden property" - "property absent" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 513 - not.json: "forbid everything with empty schema" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 514 - not.json: "forbid everything with empty schema" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 515 - not.json: "forbid everything with empty schema" - "boolean true is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 516 - not.json: "forbid everything with empty schema" - "boolean false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 517 - not.json: "forbid everything with empty schema" - "null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 518 - not.json: "forbid everything with empty schema" - "object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 519 - not.json: "forbid everything with empty schema" - "empty object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 520 - not.json: "forbid everything with empty schema" - "array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 521 - not.json: "forbid everything with empty schema" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 522 - not.json: "forbid everything with boolean schema true" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 523 - not.json: "forbid everything with boolean schema true" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 524 - not.json: "forbid everything with boolean schema true" - "boolean true is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 525 - not.json: "forbid everything with boolean schema true" - "boolean false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 526 - not.json: "forbid everything with boolean schema true" - "null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 527 - not.json: "forbid everything with boolean schema true" - "object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 528 - not.json: "forbid everything with boolean schema true" - "empty object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 529 - not.json: "forbid everything with boolean schema true" - "array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 530 - not.json: "forbid everything with boolean schema true" - "empty array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/not" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 531 - not.json: "allow everything with boolean schema false" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 532 - not.json: "allow everything with boolean schema false" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 533 - not.json: "allow everything with boolean schema false" - "boolean true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 534 - not.json: "allow everything with boolean schema false" - "boolean false is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 535 - not.json: "allow everything with boolean schema false" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 536 - not.json: "allow everything with boolean schema false" - "object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 537 - not.json: "allow everything with boolean schema false" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 538 - not.json: "allow everything with boolean schema false" - "array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 539 - not.json: "allow everything with boolean schema false" - "empty array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 540 - not.json: "double negation" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 541 - oneOf.json: "oneOf" - "first oneOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 542 - oneOf.json: "oneOf" - "second oneOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 543 - oneOf.json: "oneOf" - "both oneOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 544 - oneOf.json: "oneOf" - "neither oneOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/type" 532s # }, 532s # { 532s # "error": "value is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/minimum" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/type" 532s # }, 532s # { 532s # "error": "value is less than 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/minimum" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 545 - oneOf.json: "oneOf with base schema" - "mismatch base schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # }, 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 546 - oneOf.json: "oneOf with base schema" - "one oneOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 547 - oneOf.json: "oneOf with base schema" - "both oneOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 548 - oneOf.json: "oneOf with boolean schemas, all true" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1, 2", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 549 - oneOf.json: "oneOf with boolean schemas, one true" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 550 - oneOf.json: "oneOf with boolean schemas, more than one true" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 551 - oneOf.json: "oneOf with boolean schemas, all false" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/2" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1" 532s # }, 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/2" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 552 - oneOf.json: "oneOf complex types" - "first oneOf valid (complex)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 553 - oneOf.json: "oneOf complex types" - "second oneOf valid (complex)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 554 - oneOf.json: "oneOf complex types" - "both oneOf valid (complex)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 555 - oneOf.json: "oneOf complex types" - "neither oneOf valid (complex)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/oneOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/properties" 532s # }, 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/oneOf/1/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/properties" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/oneOf/0/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/properties" 532s # }, 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/oneOf/1/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/properties" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 556 - oneOf.json: "oneOf with empty schema" - "one valid - valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 557 - oneOf.json: "oneOf with empty schema" - "both valid - invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 558 - oneOf.json: "oneOf with required" - "both invalid - invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/required" 532s # }, 532s # { 532s # "error": "object is missing properties: foo, baz", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/required" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/required" 532s # }, 532s # { 532s # "error": "object is missing properties: foo, baz", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/required" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 559 - oneOf.json: "oneOf with required" - "first valid - valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 560 - oneOf.json: "oneOf with required" - "second valid - valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 561 - oneOf.json: "oneOf with required" - "both valid - invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 562 - oneOf.json: "oneOf with missing optional property" - "first oneOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 563 - oneOf.json: "oneOf with missing optional property" - "second oneOf valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 564 - oneOf.json: "oneOf with missing optional property" - "both oneOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "multiple subschemas are valid: 0, 1", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 565 - oneOf.json: "oneOf with missing optional property" - "neither oneOf valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/required" 532s # }, 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/required" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/required" 532s # }, 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/1/required" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 566 - oneOf.json: "nested oneOf, to check validation semantics" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 567 - oneOf.json: "nested oneOf, to check validation semantics" - "anything non-null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/oneOf/0/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/oneOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/oneOf/0/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf/0/oneOf" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/oneOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 568 - pattern.json: "pattern validation" - "a matching pattern is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 569 - pattern.json: "pattern validation" - "a non-matching pattern is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 570 - pattern.json: "pattern validation" - "ignores booleans" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 571 - pattern.json: "pattern validation" - "ignores integers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 572 - pattern.json: "pattern validation" - "ignores floats" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 573 - pattern.json: "pattern validation" - "ignores objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 574 - pattern.json: "pattern validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 575 - pattern.json: "pattern validation" - "ignores null" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 576 - pattern.json: "pattern is not anchored" - "matches a substring" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 577 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single valid match is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 578 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple valid matches is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 579 - patternProperties.json: "patternProperties validates properties matching a regex" - "a single invalid match is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.*o/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.*o/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 580 - patternProperties.json: "patternProperties validates properties matching a regex" - "multiple invalid matches is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.*o/type" 532s # }, 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foooooo", 532s # "keywordLocation": "/patternProperties/f.*o/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.*o/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 581 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 582 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 583 - patternProperties.json: "patternProperties validates properties matching a regex" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 584 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a single valid match is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 585 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "a simultaneous match is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 586 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "multiple matches is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 587 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to one is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/a", 532s # "keywordLocation": "/patternProperties/a*/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/a", 532s # "keywordLocation": "/patternProperties/a*/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 588 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to the other is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 20", 532s # "instanceLocation": "/aaaa", 532s # "keywordLocation": "/patternProperties/aaa*/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than 20", 532s # "instanceLocation": "/aaaa", 532s # "keywordLocation": "/patternProperties/aaa*/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 589 - patternProperties.json: "multiple simultaneous patternProperties are validated" - "an invalid due to both is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/aaa", 532s # "keywordLocation": "/patternProperties/a*/type" 532s # }, 532s # { 532s # "error": "value is greater than 20", 532s # "instanceLocation": "/aaaa", 532s # "keywordLocation": "/patternProperties/aaa*/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/aaa", 532s # "keywordLocation": "/patternProperties/a*/type" 532s # }, 532s # { 532s # "error": "value is greater than 20", 532s # "instanceLocation": "/aaaa", 532s # "keywordLocation": "/patternProperties/aaa*/maximum" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 590 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "non recognized members are ignored" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 591 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "recognized members are accounted for" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not boolean", 532s # "instanceLocation": "/a31b", 532s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not boolean", 532s # "instanceLocation": "/a31b", 532s # "keywordLocation": "/patternProperties/[0-9]{2,}/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 592 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 593 - patternProperties.json: "regexes are not anchored by default and are case sensitive" - "regexes are case sensitive, 2" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/a_X_3", 532s # "keywordLocation": "/patternProperties/X_/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/a_X_3", 532s # "keywordLocation": "/patternProperties/X_/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 594 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema true is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 595 - patternProperties.json: "patternProperties with boolean schemas" - "object with property matching schema false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 596 - patternProperties.json: "patternProperties with boolean schemas" - "object with both properties is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 597 - patternProperties.json: "patternProperties with boolean schemas" - "object with a property matching both true and false is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/foobar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/foobar", 532s # "keywordLocation": "/patternProperties/b.*" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 598 - patternProperties.json: "patternProperties with boolean schemas" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 599 - patternProperties.json: "patternProperties with null valued instance properties" - "allows null values" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 600 - properties.json: "object properties validation" - "both properties present and valid is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 601 - properties.json: "object properties validation" - "one property invalid is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 602 - properties.json: "object properties validation" - "both properties invalid is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/type" 532s # }, 532s # { 532s # "error": "got array, not integer", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 603 - properties.json: "object properties validation" - "doesn't invalidate other properties" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 604 - properties.json: "object properties validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 605 - properties.json: "object properties validation" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 606 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property validates property" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 607 - properties.json: "properties, patternProperties, additionalProperties interaction" - "property invalidates property" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 3 items", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/maxItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has more than 3 items", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/maxItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 608 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates property" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 2 items", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.o/minItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 2 items", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/patternProperties/f.o/minItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 609 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty validates nonproperty" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 610 - properties.json: "properties, patternProperties, additionalProperties interaction" - "patternProperty invalidates nonproperty" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 2 items", 532s # "instanceLocation": "/fxo", 532s # "keywordLocation": "/patternProperties/f.o/minItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "array has fewer than 2 items", 532s # "instanceLocation": "/fxo", 532s # "keywordLocation": "/patternProperties/f.o/minItems" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 611 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty ignores property" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 612 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty validates others" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 613 - properties.json: "properties, patternProperties, additionalProperties interaction" - "additionalProperty invalidates others" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/quux", 532s # "keywordLocation": "/additionalProperties/type" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 614 - properties.json: "properties with boolean schema" - "no property present is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 615 - properties.json: "properties with boolean schema" - "only 'true' property present is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 616 - properties.json: "properties with boolean schema" - "only 'false' property present is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 617 - properties.json: "properties with boolean schema" - "both properties present is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 618 - properties.json: "properties with escaped characters" - "object with all numbers is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 619 - properties.json: "properties with escaped characters" - "object with strings is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\tbar", 532s # "keywordLocation": "/properties/foo\tbar/type" 532s # }, 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\nbar", 532s # "keywordLocation": "/properties/foo\nbar/type" 532s # }, 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\fbar", 532s # "keywordLocation": "/properties/foo\fbar/type" 532s # }, 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\rbar", 532s # "keywordLocation": "/properties/foo\rbar/type" 532s # }, 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\"bar", 532s # "keywordLocation": "/properties/foo\"bar/type" 532s # }, 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\\bar", 532s # "keywordLocation": "/properties/foo\\bar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\tbar", 532s # "keywordLocation": "/properties/foo\tbar/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 620 - properties.json: "properties with null valued instance properties" - "allows null values" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 621 - properties.json: "properties whose names are Javascript object property names" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 622 - properties.json: "properties whose names are Javascript object property names" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 623 - properties.json: "properties whose names are Javascript object property names" - "none of the properties mentioned" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 624 - properties.json: "properties whose names are Javascript object property names" - "__proto__ not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/__proto__", 532s # "keywordLocation": "/properties/__proto__/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "/__proto__", 532s # "keywordLocation": "/properties/__proto__/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 625 - properties.json: "properties whose names are Javascript object property names" - "toString not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/toString/length", 532s # "keywordLocation": "/properties/toString/properties/length/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/toString", 532s # "keywordLocation": "/properties/toString/properties" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/toString/length", 532s # "keywordLocation": "/properties/toString/properties/length/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/toString", 532s # "keywordLocation": "/properties/toString/properties" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 626 - properties.json: "properties whose names are Javascript object property names" - "constructor not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not number", 532s # "instanceLocation": "/constructor", 532s # "keywordLocation": "/properties/constructor/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not number", 532s # "instanceLocation": "/constructor", 532s # "keywordLocation": "/properties/constructor/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 627 - properties.json: "properties whose names are Javascript object property names" - "all present and valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 628 - propertyNames.json: "propertyNames validation" - "all property names valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 629 - propertyNames.json: "propertyNames validation" - "some property names invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 3", 532s # "instanceLocation": "/foobar", 532s # "keywordLocation": "/propertyNames/maxLength" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "length is greater than 3", 532s # "instanceLocation": "/foobar", 532s # "keywordLocation": "/propertyNames/maxLength" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 630 - propertyNames.json: "propertyNames validation" - "object without properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 631 - propertyNames.json: "propertyNames validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 632 - propertyNames.json: "propertyNames validation" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 633 - propertyNames.json: "propertyNames validation" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 634 - propertyNames.json: "propertyNames validation with pattern" - "matching property names valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 635 - propertyNames.json: "propertyNames validation with pattern" - "non-matching property name is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "/aaA", 532s # "keywordLocation": "/propertyNames/pattern" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "/aaA", 532s # "keywordLocation": "/propertyNames/pattern" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 636 - propertyNames.json: "propertyNames validation with pattern" - "object without properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 637 - propertyNames.json: "propertyNames with boolean schema true" - "object with any properties is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 638 - propertyNames.json: "propertyNames with boolean schema true" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 639 - propertyNames.json: "propertyNames with boolean schema false" - "object with any properties is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/propertyNames" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "subschema is false", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/propertyNames" 532s # }, 532s # { 532s # "error": "not all property names are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/propertyNames" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 640 - propertyNames.json: "propertyNames with boolean schema false" - "empty object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 641 - ref.json: "root pointer ref" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 642 - ref.json: "root pointer ref" - "recursive match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 643 - ref.json: "root pointer ref" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 644 - ref.json: "root pointer ref" - "recursive mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/additionalProperties", 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/additionalProperties", 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/additionalProperties", 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/additionalProperties", 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/additionalProperties" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 645 - ref.json: "relative pointer ref to object" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 646 - ref.json: "relative pointer ref to object" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/properties/foo/type", 532s # "error": "got boolean, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/properties/foo/type", 532s # "error": "got boolean, not integer", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/properties/bar/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 647 - ref.json: "relative pointer ref to array" - "match array" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 648 - ref.json: "relative pointer ref to array" - "mismatch array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/items/0/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/1/$ref/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/items/0/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/1", 532s # "keywordLocation": "/items/1/$ref/type" 532s # }, 532s # { 532s # "error": "not all items are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 649 - ref.json: "escaped pointer ref" - "slash invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/slash", 532s # "keywordLocation": "/properties/slash/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/slash~1field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/slash", 532s # "keywordLocation": "/properties/slash/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 650 - ref.json: "escaped pointer ref" - "tilde invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/tilde", 532s # "keywordLocation": "/properties/tilde/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/tilde~0field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/tilde", 532s # "keywordLocation": "/properties/tilde/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 651 - ref.json: "escaped pointer ref" - "percent invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/percent", 532s # "keywordLocation": "/properties/percent/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/percent%25field/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/percent", 532s # "keywordLocation": "/properties/percent/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 652 - ref.json: "escaped pointer ref" - "slash valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 653 - ref.json: "escaped pointer ref" - "tilde valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 654 - ref.json: "escaped pointer ref" - "percent valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 655 - ref.json: "nested refs" - "nested ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 656 - ref.json: "nested refs" - "nested ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/a/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/a/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/$ref/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 657 - ref.json: "ref overrides any sibling keywords" - "ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 658 - ref.json: "ref overrides any sibling keywords" - "ref valid, maxItems ignored" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 659 - ref.json: "ref overrides any sibling keywords" - "ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/reffed/type", 532s # "error": "got string, not array", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/reffed/type", 532s # "error": "got string, not array", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 660 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data does not validate" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/foo.json#/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/sibling_id/base/#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 661 - ref.json: "$ref prevents a sibling $id from changing the base uri" - "$ref resolves to /definitions/base_foo, data validates" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 662 - ref.json: "remote ref, containing refs itself" - "remote ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 663 - ref.json: "remote ref, containing refs itself" - "remote ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 532s # "error": "value is less than 0", 532s # "instanceLocation": "/minLength", 532s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/minLength", 532s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeInteger/minimum", 532s # "error": "value is less than 0", 532s # "instanceLocation": "/minLength", 532s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf/0/$ref/minimum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/definitions/nonNegativeIntegerDefault0/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/minLength", 532s # "keywordLocation": "/$ref/properties/minLength/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://json-schema.org/draft-07/schema#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 664 - ref.json: "property named $ref that is not a reference" - "property named $ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 665 - ref.json: "property named $ref that is not a reference" - "property named $ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/$ref", 532s # "keywordLocation": "/properties/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not string", 532s # "instanceLocation": "/$ref", 532s # "keywordLocation": "/properties/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 666 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 667 - ref.json: "property named $ref, containing an actual $ref" - "property named $ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/is-string/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/$ref", 532s # "keywordLocation": "/properties/$ref/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/is-string/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/$ref", 532s # "keywordLocation": "/properties/$ref/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 668 - ref.json: "$ref to boolean schema true" - "any value is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 669 - ref.json: "$ref to boolean schema false" - "any value is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/bool", 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/bool", 532s # "error": "subschema is false", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 670 - ref.json: "Recursive references between schemas" - "valid tree" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 671 - ref.json: "Recursive references between schemas" - "invalid tree" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0/subtree/nodes/0", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/nodes/0/subtree/nodes", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0/subtree", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/nodes", 532s # "keywordLocation": "/properties/nodes/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties/value/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "/nodes/0/subtree/nodes/0/value", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties/value/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0/subtree/nodes/0", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/nodes/0/subtree/nodes", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties/nodes/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0/subtree", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties/subtree/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/node#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/nodes/0", 532s # "keywordLocation": "/properties/nodes/items/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties/nodes/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/nodes", 532s # "keywordLocation": "/properties/nodes/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/tree#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 672 - ref.json: "refs with quote" - "object with numbers is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 673 - ref.json: "refs with quote" - "object with strings is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\"bar", 532s # "keywordLocation": "/properties/foo\"bar/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/foo%22bar/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "/foo\"bar", 532s # "keywordLocation": "/properties/foo\"bar/$ref/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 674 - ref.json: "Location-independent identifier" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 675 - ref.json: "Location-independent identifier" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 676 - ref.json: "Reference an anchor with a non-relative URI" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 677 - ref.json: "Reference an anchor with a non-relative URI" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://example.com/schema-with-anchor#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 678 - ref.json: "Location-independent identifier with base URI change in subschema" - "match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 679 - ref.json: "Location-independent identifier with base URI change in subschema" - "mismatch" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested.json#/definitions/B/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/root#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 680 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, matching any string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 681 - ref.json: "naive replacement of $ref with its destination is not correct" - "do not evaluate the $ref inside the enum, definition exact match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/enum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 682 - ref.json: "naive replacement of $ref with its destination is not correct" - "match the enum exactly" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 683 - ref.json: "refs with relative uris and defs" - "invalid on inner field" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 684 - ref.json: "refs with relative uris and defs" - "invalid on outer field" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-relative-uri-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 685 - ref.json: "refs with relative uris and defs" - "valid on both fields" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 686 - ref.json: "relative refs with absolute uris and defs" - "invalid on inner field" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo/bar", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 687 - ref.json: "relative refs with absolute uris and defs" - "invalid on outer field" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs2.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/schema-refs-absolute-uris-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 688 - ref.json: "relative refs with absolute uris and defs" - "valid on both fields" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 689 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 690 - ref.json: "$id must be resolved against nearest parent, not just immediate parent" - "non-number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/b/d.json#/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/a.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 691 - ref.json: "simple URN base URI with $ref via the URN" - "valid under the URN IDed schema" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 692 - ref.json: "simple URN base URI with $ref via the URN" - "invalid under the URN IDed schema" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 532s # "error": "value is less than 30", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/minimum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/minimum", 532s # "error": "value is less than 30", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/minimum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 693 - ref.json: "simple URN base URI with JSON pointer" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 694 - ref.json: "simple URN base URI with JSON pointer" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 695 - ref.json: "URN base URI with NSS" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 696 - ref.json: "URN base URI with NSS" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:1/406/47452/2#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 697 - ref.json: "URN base URI with r-component" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 698 - ref.json: "URN base URI with r-component" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 699 - ref.json: "URN base URI with q-component" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 700 - ref.json: "URN base URI with q-component" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 701 - ref.json: "URN base URI with URN and JSON pointer ref" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 702 - ref.json: "URN base URI with URN and JSON pointer ref" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 703 - ref.json: "URN base URI with URN and anchor ref" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 704 - ref.json: "URN base URI with URN and anchor ref" - "a non-string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/definitions/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/foo", 532s # "keywordLocation": "/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 705 - ref.json: "ref to if" - "a non-integer is invalid due to the $ref" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/if#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 706 - ref.json: "ref to if" - "an integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 707 - ref.json: "ref to then" - "a non-integer is invalid due to the $ref" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/then#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 708 - ref.json: "ref to then" - "an integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 709 - ref.json: "ref to else" - "a non-integer is invalid due to the $ref" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/else#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 710 - ref.json: "ref to else" - "an integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 711 - ref.json: "ref with absolute-path-reference" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 712 - ref.json: "ref with absolute-path-reference" - "an integer is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://example.com/absref/foobar.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://example.com/ref/absref.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 713 - ref.json: "$id with file URI still resolves pointers - *nix" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 714 - ref.json: "$id with file URI still resolves pointers - *nix" - "non-number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "file:///folder/file.json#/definitions/foo/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "file:///folder/file.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 715 - ref.json: "$id with file URI still resolves pointers - windows" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 716 - ref.json: "$id with file URI still resolves pointers - windows" - "non-number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/definitions/foo/type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "file:///c:/folder/file.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 717 - ref.json: "empty tokens in $ref json-pointer" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 718 - ref.json: "empty tokens in $ref json-pointer" - "non-number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions//definitions//type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions//definitions//type", 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/type" 532s # }, 532s # { 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 719 - refRemote.json: "remote ref" - "remote ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 720 - refRemote.json: "remote ref" - "remote ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 721 - refRemote.json: "fragment within remote ref" - "remote fragment valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 722 - refRemote.json: "fragment within remote ref" - "remote fragment invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 723 - refRemote.json: "ref within remote ref" - "ref within ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 724 - refRemote.json: "ref within remote ref" - "ref within ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/subSchemas.json#/definitions/integer/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 725 - refRemote.json: "base URI change" - "base URI change ref valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 726 - refRemote.json: "base URI change" - "base URI change ref invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/0/0", 532s # "keywordLocation": "/items/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChange/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/0", 532s # "keywordLocation": "/items/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/items" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 727 - refRemote.json: "base URI change - change folder" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 728 - refRemote.json: "base URI change - change folder" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/list/0", 532s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/list", 532s # "keywordLocation": "/properties/list/$ref/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/list/0", 532s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolder/#/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/list", 532s # "keywordLocation": "/properties/list/$ref/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs1.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 729 - refRemote.json: "base URI change - change folder in subschema" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 730 - refRemote.json: "base URI change - change folder in subschema" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/list/0", 532s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/list", 532s # "keywordLocation": "/properties/list/$ref/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "/list/0", 532s # "keywordLocation": "/properties/list/$ref/items/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/baseUriChangeFolderInSubschema/#/definitions/bar/items", 532s # "error": "subschema is not valid against all items", 532s # "instanceLocation": "/list", 532s # "keywordLocation": "/properties/list/$ref/items" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/scope_change_defs2.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 731 - refRemote.json: "root ref in remote ref" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 732 - refRemote.json: "root ref in remote ref" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 733 - refRemote.json: "root ref in remote ref" - "object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 532s # "error": "got object, not null", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 532s # "error": "got object, not string", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf/0/type", 532s # "error": "got object, not null", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf/0/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/type", 532s # "error": "got object, not string", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf/1/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/name.json#/definitions/orNull/anyOf", 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/anyOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/object#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 734 - refRemote.json: "remote ref with ref to definitions" - "invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties/bar/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/bar", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties/bar/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/definitions/inner/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf/0/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/ref-and-definitions.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/0/$ref/allOf" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/schema-remote-ref-ref-defs1.json#/allOf", 532s # "error": "subschema 0 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 735 - refRemote.json: "remote ref with ref to definitions" - "valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 736 - refRemote.json: "Location-independent identifier in remote ref" - "integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 737 - refRemote.json: "Location-independent identifier in remote ref" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/A/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 738 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/name/foo", 532s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "/name/foo", 532s # "keywordLocation": "/properties/name/$ref/properties/foo/$ref/type" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/foo-ref-string.json#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "/name", 532s # "keywordLocation": "/properties/name/$ref/properties" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/some-id#/properties", 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/properties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 739 - refRemote.json: "retrieved nested refs resolve relative to their URI not $id" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 740 - refRemote.json: "$ref to $ref finds location-independent $id" - "number is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 741 - refRemote.json: "$ref to $ref finds location-independent $id" - "non-number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft7/detached-ref.json#/definitions/detached/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/$ref/$ref/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 742 - required.json: "required validation" - "present required property is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 743 - required.json: "required validation" - "non-present required property is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing property: foo", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 744 - required.json: "required validation" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 745 - required.json: "required validation" - "ignores strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 746 - required.json: "required validation" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 747 - required.json: "required default validation" - "not required by default" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 748 - required.json: "required with empty array" - "property not required" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 749 - required.json: "required with escaped characters" - "object with all properties present is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 750 - required.json: "required with escaped characters" - "object with some properties missing is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: foo\\bar, foo\rbar, foo\tbar, foo\fbar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 751 - required.json: "required properties whose names are Javascript object property names" - "ignores arrays" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 752 - required.json: "required properties whose names are Javascript object property names" - "ignores other non-objects" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 753 - required.json: "required properties whose names are Javascript object property names" - "none of the properties mentioned" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, toString, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, toString, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 754 - required.json: "required properties whose names are Javascript object property names" - "__proto__ present" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: toString, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: toString, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 755 - required.json: "required properties whose names are Javascript object property names" - "toString present" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, constructor", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 756 - required.json: "required properties whose names are Javascript object property names" - "constructor present" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, toString", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "object is missing properties: __proto__, toString", 532s # "instanceLocation": "", 532s # "keywordLocation": "/required" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 757 - required.json: "required properties whose names are Javascript object property names" - "all present" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 758 - type.json: "integer type matches integers" - "an integer is an integer" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 759 - type.json: "integer type matches integers" - "a float with zero fractional part is an integer" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 760 - type.json: "integer type matches integers" - "a float is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got number, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 761 - type.json: "integer type matches integers" - "a string is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 762 - type.json: "integer type matches integers" - "a string is still not an integer, even if it looks like one" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got string, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 763 - type.json: "integer type matches integers" - "an object is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got object, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got object, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 764 - type.json: "integer type matches integers" - "an array is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got array, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got array, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 765 - type.json: "integer type matches integers" - "a boolean is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got boolean, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got boolean, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 766 - type.json: "integer type matches integers" - "null is not an integer" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got null, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/integer.json#/type", 532s # "error": "got null, not integer", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 767 - type.json: "number type matches numbers" - "an integer is a number" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 768 - type.json: "number type matches numbers" - "a float with zero fractional part is a number (and an integer)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 769 - type.json: "number type matches numbers" - "a float is a number" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 770 - type.json: "number type matches numbers" - "a string is not a number" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 771 - type.json: "number type matches numbers" - "a string is still not a number, even if it looks like one" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 772 - type.json: "number type matches numbers" - "an object is not a number" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 773 - type.json: "number type matches numbers" - "an array is not a number" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 774 - type.json: "number type matches numbers" - "a boolean is not a number" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 775 - type.json: "number type matches numbers" - "null is not a number" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not number", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 776 - type.json: "string type matches strings" - "1 is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 777 - type.json: "string type matches strings" - "a float is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got number, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got number, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 778 - type.json: "string type matches strings" - "a string is a string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 779 - type.json: "string type matches strings" - "a string is still a string, even if it looks like a number" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 780 - type.json: "string type matches strings" - "an empty string is still a string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 781 - type.json: "string type matches strings" - "an object is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got object, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got object, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 782 - type.json: "string type matches strings" - "an array is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got array, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got array, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 783 - type.json: "string type matches strings" - "a boolean is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got boolean, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got boolean, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 784 - type.json: "string type matches strings" - "null is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got null, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got null, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 785 - type.json: "object type matches objects" - "an integer is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 786 - type.json: "object type matches objects" - "a float is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 787 - type.json: "object type matches objects" - "a string is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 788 - type.json: "object type matches objects" - "an object is an object" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 789 - type.json: "object type matches objects" - "an array is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 790 - type.json: "object type matches objects" - "a boolean is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 791 - type.json: "object type matches objects" - "null is not an object" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 792 - type.json: "array type matches arrays" - "an integer is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 793 - type.json: "array type matches arrays" - "a float is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 794 - type.json: "array type matches arrays" - "a string is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 795 - type.json: "array type matches arrays" - "an object is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 796 - type.json: "array type matches arrays" - "an array is an array" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 797 - type.json: "array type matches arrays" - "a boolean is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 798 - type.json: "array type matches arrays" - "null is not an array" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not array", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 799 - type.json: "boolean type matches booleans" - "an integer is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 800 - type.json: "boolean type matches booleans" - "zero is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 801 - type.json: "boolean type matches booleans" - "a float is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 802 - type.json: "boolean type matches booleans" - "a string is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 803 - type.json: "boolean type matches booleans" - "an empty string is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 804 - type.json: "boolean type matches booleans" - "an object is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 805 - type.json: "boolean type matches booleans" - "an array is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 806 - type.json: "boolean type matches booleans" - "true is a boolean" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 807 - type.json: "boolean type matches booleans" - "false is a boolean" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 808 - type.json: "boolean type matches booleans" - "null is not a boolean" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not boolean", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 809 - type.json: "null type matches only the null object" - "an integer is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 810 - type.json: "null type matches only the null object" - "a float is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 811 - type.json: "null type matches only the null object" - "zero is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 812 - type.json: "null type matches only the null object" - "a string is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 813 - type.json: "null type matches only the null object" - "an empty string is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 814 - type.json: "null type matches only the null object" - "an object is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 815 - type.json: "null type matches only the null object" - "an array is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 816 - type.json: "null type matches only the null object" - "true is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 817 - type.json: "null type matches only the null object" - "false is not null" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 818 - type.json: "null type matches only the null object" - "null is null" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 819 - type.json: "multiple types can be specified in an array" - "an integer is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 820 - type.json: "multiple types can be specified in an array" - "a string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 821 - type.json: "multiple types can be specified in an array" - "a float is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got number, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 822 - type.json: "multiple types can be specified in an array" - "an object is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got object, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 823 - type.json: "multiple types can be specified in an array" - "an array is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got array, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 824 - type.json: "multiple types can be specified in an array" - "a boolean is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got boolean, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 825 - type.json: "multiple types can be specified in an array" - "null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not one of integer, string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 826 - type.json: "type as array with one item" - "string is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 827 - type.json: "type as array with one item" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 828 - type.json: "type: array or object" - "array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 829 - type.json: "type: array or object" - "object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 830 - type.json: "type: array or object" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 831 - type.json: "type: array or object" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 832 - type.json: "type: array or object" - "null is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got null, not one of array, object", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 833 - type.json: "type: array, object or null" - "array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 834 - type.json: "type: array, object or null" - "object is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 835 - type.json: "type: array, object or null" - "null is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 836 - type.json: "type: array, object or null" - "number is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of array, object, null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got integer, not one of array, object, null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 837 - type.json: "type: array, object or null" - "string is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not one of array, object, null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not one of array, object, null", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 838 - uniqueItems.json: "uniqueItems validation" - "unique array of integers is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 839 - uniqueItems.json: "uniqueItems validation" - "non-unique array of integers is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 840 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two integers is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 841 - uniqueItems.json: "uniqueItems validation" - "numbers are unique if mathematically unequal" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 842 - uniqueItems.json: "uniqueItems validation" - "false is not equal to zero" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 843 - uniqueItems.json: "uniqueItems validation" - "true is not equal to one" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 844 - uniqueItems.json: "uniqueItems validation" - "unique array of strings is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 845 - uniqueItems.json: "uniqueItems validation" - "non-unique array of strings is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 846 - uniqueItems.json: "uniqueItems validation" - "unique array of objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 847 - uniqueItems.json: "uniqueItems validation" - "non-unique array of objects is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 848 - uniqueItems.json: "uniqueItems validation" - "property order of array of objects is ignored" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 849 - uniqueItems.json: "uniqueItems validation" - "unique array of nested objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 850 - uniqueItems.json: "uniqueItems validation" - "non-unique array of nested objects is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 851 - uniqueItems.json: "uniqueItems validation" - "unique array of arrays is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 852 - uniqueItems.json: "uniqueItems validation" - "non-unique array of arrays is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 853 - uniqueItems.json: "uniqueItems validation" - "non-unique array of more than two arrays is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 2 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 854 - uniqueItems.json: "uniqueItems validation" - "1 and true are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 855 - uniqueItems.json: "uniqueItems validation" - "0 and false are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 856 - uniqueItems.json: "uniqueItems validation" - "[1] and [true] are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 857 - uniqueItems.json: "uniqueItems validation" - "[0] and [false] are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 858 - uniqueItems.json: "uniqueItems validation" - "nested [1] and [true] are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 859 - uniqueItems.json: "uniqueItems validation" - "nested [0] and [false] are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 860 - uniqueItems.json: "uniqueItems validation" - "unique heterogeneous types are valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 861 - uniqueItems.json: "uniqueItems validation" - "non-unique heterogeneous types are invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 4 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 4 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 862 - uniqueItems.json: "uniqueItems validation" - "different objects are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 863 - uniqueItems.json: "uniqueItems validation" - "objects are non-unique despite key order" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 864 - uniqueItems.json: "uniqueItems validation" - "{"a": false} and {"a": 0} are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 865 - uniqueItems.json: "uniqueItems validation" - "{"a": true} and {"a": 1} are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 866 - uniqueItems.json: "uniqueItems with an array of items" - "[false, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 867 - uniqueItems.json: "uniqueItems with an array of items" - "[true, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 868 - uniqueItems.json: "uniqueItems with an array of items" - "[false, false] from items array is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 869 - uniqueItems.json: "uniqueItems with an array of items" - "[true, true] from items array is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 870 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [false, true] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 871 - uniqueItems.json: "uniqueItems with an array of items" - "unique array extended from [true, false] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 872 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [false, true] is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 2 and 3 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 2 and 3 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 873 - uniqueItems.json: "uniqueItems with an array of items" - "non-unique array extended from [true, false] is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 2 and 3 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 2 and 3 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 874 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 875 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 876 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[false, false] from items array is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 877 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "[true, true] from items array is not valid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "items at indices 0 and 1 are not unique", 532s # "instanceLocation": "", 532s # "keywordLocation": "/uniqueItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 878 - uniqueItems.json: "uniqueItems with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 879 - uniqueItems.json: "uniqueItems=false validation" - "unique array of integers is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 880 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of integers is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 881 - uniqueItems.json: "uniqueItems=false validation" - "numbers are unique if mathematically unequal" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 882 - uniqueItems.json: "uniqueItems=false validation" - "false is not equal to zero" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 883 - uniqueItems.json: "uniqueItems=false validation" - "true is not equal to one" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 884 - uniqueItems.json: "uniqueItems=false validation" - "unique array of objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 885 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 886 - uniqueItems.json: "uniqueItems=false validation" - "unique array of nested objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 887 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of nested objects is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 888 - uniqueItems.json: "uniqueItems=false validation" - "unique array of arrays is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 889 - uniqueItems.json: "uniqueItems=false validation" - "non-unique array of arrays is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 890 - uniqueItems.json: "uniqueItems=false validation" - "1 and true are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 891 - uniqueItems.json: "uniqueItems=false validation" - "0 and false are unique" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 892 - uniqueItems.json: "uniqueItems=false validation" - "unique heterogeneous types are valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 893 - uniqueItems.json: "uniqueItems=false validation" - "non-unique heterogeneous types are valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 894 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 895 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 896 - uniqueItems.json: "uniqueItems=false with an array of items" - "[false, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 897 - uniqueItems.json: "uniqueItems=false with an array of items" - "[true, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 898 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [false, true] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 899 - uniqueItems.json: "uniqueItems=false with an array of items" - "unique array extended from [true, false] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 900 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [false, true] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 901 - uniqueItems.json: "uniqueItems=false with an array of items" - "non-unique array extended from [true, false] is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 902 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 903 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 904 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[false, false] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 905 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "[true, true] from items array is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 906 - uniqueItems.json: "uniqueItems=false with an array of items and additionalItems=false" - "extra items are invalid even if unique" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional item not permitted", 532s # "instanceLocation": "/2", 532s # "keywordLocation": "/additionalItems" 532s # }, 532s # { 532s # "error": "subschema is not valid against all additional items", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalItems" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 907 - optional/bignum.json: "integer" - "a bignum is an integer" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 908 - optional/bignum.json: "integer" - "a negative bignum is an integer" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 909 - optional/bignum.json: "number" - "a bignum is a number" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 910 - optional/bignum.json: "number" - "a negative bignum is a number" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 911 - optional/bignum.json: "string" - "a bignum is not a string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/nested/string.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/type" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 912 - optional/bignum.json: "maximum integer comparison" - "comparison works for high numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 913 - optional/bignum.json: "float comparison with high precision" - "comparison works for high numbers" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is greater than or equal to 972783798187987123879878123.18878137", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMaximum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 914 - optional/bignum.json: "minimum integer comparison" - "comparison works for very negative numbers" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 915 - optional/bignum.json: "float comparison with high precision on negative numbers" - "comparison works for very negative numbers" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "value is less than or equal to -972783798187987123879878123.18878137", 532s # "instanceLocation": "", 532s # "keywordLocation": "/exclusiveMinimum" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 916 - optional/content.json: "validation of string-encoded content based on media type" - "a valid JSON document" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 917 - optional/content.json: "validation of string-encoded content based on media type" - "an invalid JSON document" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1142.", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentMediaType" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1142.", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentMediaType" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 918 - optional/content.json: "validation of string-encoded content based on media type" - "ignores non-strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 919 - optional/content.json: "validation of binary string-encoding" - "a valid base64 string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 920 - optional/content.json: "validation of binary string-encoding" - "an invalid base64 string (% is not a valid character)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode base64 string: invalid characters", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentEncoding" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode base64 string: invalid characters", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentEncoding" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 921 - optional/content.json: "validation of binary string-encoding" - "ignores non-strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 922 - optional/content.json: "validation of binary-encoded media type documents" - "a valid base64-encoded JSON document" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 923 - optional/content.json: "validation of binary-encoded media type documents" - "a validly-encoded invalid JSON document" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1142.", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentMediaType" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode application/json string: '\"' expected, at character offset 1 (before \":}\\n\") at /usr/share/perl5/JSON/Schema/Modern.pm line 1142.", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentMediaType" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 924 - optional/content.json: "validation of binary-encoded media type documents" - "an invalid base64 string that is valid JSON" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode base64 string: invalid characters", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentEncoding" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "could not decode base64 string: invalid characters", 532s # "instanceLocation": "", 532s # "keywordLocation": "/contentEncoding" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 925 - optional/content.json: "validation of binary-encoded media type documents" - "ignores non-strings" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 926 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "missing bar is invalid" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired/foo", 532s # "error": "object is missing property: bar", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/$ref/dependentRequired/foo" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "http://localhost:1234/draft2019-09/dependentRequired.json#/dependentRequired", 532s # "error": "not all dependencies are satisfied", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf/1/$ref/dependentRequired" 532s # }, 532s # { 532s # "error": "subschema 1 is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/allOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 927 - optional/cross-draft.json: "refs to future drafts are processed as future drafts" - "present bar is valid" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 928 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches in Python, but not in ECMA 262" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 929 - optional/ecmascript-regex.json: "ECMA 262 regex $ does not match trailing newline" - "matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 930 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 931 - optional/ecmascript-regex.json: "ECMA 262 regex converts \t to horizontal tab" - "matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 932 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 933 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and upper letter" - "matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 934 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 935 - optional/ecmascript-regex.json: "ECMA 262 regex escapes control codes with \c and lower letter" - "matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 936 - optional/ecmascript-regex.json: "ECMA 262 \d matches ascii digits only" - "ASCII zero matches" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true # 532s 1..1 532s } 532s ok 937 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "\"߀\"" 532s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 938 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "\"߀\"" 532s # schema: "{\"pattern\":\"^\\\\d$\",\"type\":\"string\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 939 - optional/ecmascript-regex.json: "ECMA 262 \D matches everything but ascii digits" - "ASCII zero does not match" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false # 532s 1..1 532s } 532s ok 940 - 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" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected true; got false 532s # data: "\"߀\"" 532s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s 1..1 532s } 532s ok 941 - 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" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected true; got false 532s # data: "\"߀\"" 532s # schema: "{\"pattern\":\"^\\\\D$\",\"type\":\"string\"}" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s 1..1 532s } 532s ok 942 - optional/ecmascript-regex.json: "ECMA 262 \w matches ascii letters only" - "ASCII 'a' matches" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true # 532s 1..1 532s } 532s ok 943 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "\"é\"" 532s # schema: "{\"pattern\":\"^\\\\w$\",\"type\":\"string\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 944 - optional/ecmascript-regex.json: "ECMA 262 \W matches everything but ascii letters" - "ASCII 'a' does not match" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false # 532s 1..1 532s } 532s ok 945 - 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" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected true; got false 532s # data: "\"é\"" 532s # schema: "{\"pattern\":\"^\\\\W$\",\"type\":\"string\"}" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s 1..1 532s } 532s ok 946 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "ASCII space matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 947 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Character tabulation matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 948 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Line tabulation matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 949 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Form feed matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 950 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "latin-1 non-breaking-space matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 951 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "zero-width whitespace matches" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected true; got false 532s # data: "\"\"" 532s # schema: "{\"pattern\":\"^\\\\s$\",\"type\":\"string\"}" 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s 1..1 532s } 532s ok 952 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "line feed matches (line terminator)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 953 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "paragraph separator matches (line terminator)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 954 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "EM SPACE matches (Space_Separator)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 955 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace control does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 956 - optional/ecmascript-regex.json: "ECMA 262 \s matches whitespace" - "Non-whitespace does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 957 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "ASCII space does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 958 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Character tabulation does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 959 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Line tabulation does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 960 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Form feed does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 961 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "latin-1 non-breaking-space does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 962 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "zero-width whitespace does not match" { # TODO Test marked TODO via "todo_tests" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "\"\"" 532s # schema: "{\"pattern\":\"^\\\\S$\",\"type\":\"string\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 963 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "line feed does not match (line terminator)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 964 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "paragraph separator does not match (line terminator)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 965 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "EM SPACE does not match (Space_Separator)" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 966 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace control matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 967 - optional/ecmascript-regex.json: "ECMA 262 \S matches everything but whitespace" - "Non-whitespace matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 968 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "ascii character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 969 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "literal unicode character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 970 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode character in hex format in string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 971 - optional/ecmascript-regex.json: "patterns always use unicode semantics with pattern" - "unicode matching is case-sensitive" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 972 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 973 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # 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.\"" 532s # schema: "{\"pattern\":\"\\\\wcole\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 974 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # 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.\"" 532s # schema: "{\"pattern\":\"\\\\wcole\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 975 - optional/ecmascript-regex.json: "\w in patterns matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 976 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "literal unicode character in json string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 977 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "unicode character in hex format in string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 978 - optional/ecmascript-regex.json: "pattern with ASCII ranges" - "ascii characters match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 979 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii digits" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 980 - optional/ecmascript-regex.json: "\d in pattern matches [0-9], not unicode digits" - "ascii non-digits" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 981 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "\"৪২\"" 532s # schema: "{\"pattern\":\"^\\\\d+$\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 982 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii digits" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 983 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "ascii non-digits" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 984 - optional/ecmascript-regex.json: "pattern with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 985 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "ascii character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 986 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "literal unicode character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 987 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode character in hex format in string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 988 - optional/ecmascript-regex.json: "patterns always use unicode semantics with patternProperties" - "unicode matching is case-sensitive" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/L'ÉCOLE", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/L'ÉCOLE", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 989 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "ascii character in json string" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 990 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "{\"l'école\":\"pas de vraie vie\"}" 532s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 991 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "{\"l'école\":\"pas de vraie vie\"}" 532s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"\\\\wcole\":true},\"type\":\"object\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 992 - optional/ecmascript-regex.json: "\w in patternProperties matches [A-Za-z0-9_], not unicode letters" - "unicode matching is case-sensitive" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/L'ÉCOLE", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/L'ÉCOLE", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 993 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "literal unicode character in json string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/l'école", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/l'école", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 994 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "unicode character in hex format in string" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/l'école", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/l'école", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 995 - optional/ecmascript-regex.json: "patternProperties with ASCII ranges" - "ascii characters match" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 996 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii digits" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 997 - optional/ecmascript-regex.json: "\d in patternProperties matches [0-9], not unicode digits" - "ascii non-digits" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/-%#", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/-%#", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 998 - 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" 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s not ok 1 - evaluation result is incorrect # 532s # Failed test (with amnesty) 'evaluation result is incorrect' 532s # at t/zzz-acceptance-draft7.t line 49. 532s # expected false; got true 532s # data: "{\"৪২\":\"khajit has wares if you have coin\"}" 532s # schema: "{\"additionalProperties\":false,\"patternProperties\":{\"^\\\\d+$\":true},\"type\":\"object\"}" 532s # result: { 532s # "valid": true 532s # } 532s 1..1 532s } 532s ok 999 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii digits" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1000 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "ascii non-digits" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/-%#", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "additional property not permitted", 532s # "instanceLocation": "/-%#", 532s # "keywordLocation": "/additionalProperties" 532s # }, 532s # { 532s # "error": "not all additional properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/additionalProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1001 - optional/ecmascript-regex.json: "patternProperties with non-ASCII digits" - "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 1002 - optional/float-overflow.json: "all integers are multiples of 0.5, if overflow is handled" - "valid if optional overflow handling is implemented" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s # 532s ok 1003 - optional/id.json: "id inside an enum is not a real identifier" - "exact match to enum, and type matches" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1004 - optional/id.json: "id inside an enum is not a real identifier" - "match $ref to id" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1005 - optional/id.json: "id inside an enum is not a real identifier" - "no match on enum or $ref to id" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/enum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_enum/enum", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/enum" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/id/my_identifier.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1006 - optional/id.json: "non-schema object containing a plain-name $id property" - "skip traversing definition for a valid result" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1007 - optional/id.json: "non-schema object containing a plain-name $id property" - "const at const_not_anchor does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/$ref/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/const_not_anchor/const", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/$ref/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1008 - optional/id.json: "non-schema object containing an $id property" - "skip traversing definition for a valid result" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1009 - optional/id.json: "non-schema object containing an $id property" - "const at const_not_id does not match" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/$ref/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/const_not_id/const", 532s # "error": "value does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else/$ref/const" 532s # }, 532s # { 532s # "error": "subschema is not valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/else" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 1010 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches empty" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1011 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches single" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1012 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "matches two" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1013 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1014 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1015 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match one ASCII" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1016 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: pattern" - "doesn't match two ASCII" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "pattern does not match", 532s # "instanceLocation": "", 532s # "keywordLocation": "/pattern" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1017 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches empty" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1018 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches single" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1019 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "matches two" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1020 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match one" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/🐲", 532s # "keywordLocation": "/patternProperties/^🐲*$/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/🐲", 532s # "keywordLocation": "/patternProperties/^🐲*$/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1021 - optional/non-bmp-regex.json: "Proper UTF-16 surrogate pair handling: patternProperties" - "doesn't match two" { 532s # result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/🐲🐲", 532s # "keywordLocation": "/patternProperties/^🐲*$/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "error": "got string, not integer", 532s # "instanceLocation": "/🐲🐲", 532s # "keywordLocation": "/patternProperties/^🐲*$/type" 532s # }, 532s # { 532s # "error": "not all properties are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/patternProperties" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s ok 1022 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches second anyOf, which has a real schema in it" { 532s # result: { 532s # "valid": true 532s # } 532s # short-circuited result: { 532s # "valid": true 532s # } 532s ok 1 - test passes: data is valid: true 532s 1..1 532s } 532s ok 1023 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in first anyOf" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 532s # "error": "got null, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/2/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 532s # "error": "got null, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/2/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s ok 1024 - optional/unknownKeyword.json: "$id inside an unknown keyword is not a real identifier" - "type matches non-schema in third anyOf" { 532s # result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/2/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s # short-circuited result: { 532s # "errors": [ 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown0/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/0/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "#/definitions/id_in_unknown1/not", 532s # "error": "subschema is valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/1/$ref/not" 532s # }, 532s # { 532s # "absoluteKeywordLocation": "https://localhost:1234/unknownKeyword/my_identifier.json#/type", 532s # "error": "got integer, not string", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf/2/$ref/type" 532s # }, 532s # { 532s # "error": "no subschemas are valid", 532s # "instanceLocation": "", 532s # "keywordLocation": "/anyOf" 532s # } 532s # ], 532s # "valid": false 532s # } 532s ok 1 - test passes: data is valid: false 532s 1..1 532s } 532s # 532s # 532s # generated with: Test::JSON::Schema::Acceptance 1.026 532s # with commit: 9fc880bfb6d8ccd093bc82431f17d13681ffae8e (23.2.0-117-g9fc880b) 532s # from repository: git://github.com/json-schema-org/JSON-Schema-Test-Suite.git 532s # specification version: draft7 532s # optional tests included: yes 532s # skipping directory: optional/format 532s # 532s # filename pass todo-fail fail 532s # --------------------------------------------------------------- 532s # additionalItems.json 20 0 0 532s # additionalProperties.json 16 0 0 532s # allOf.json 30 0 0 532s # anyOf.json 18 0 0 532s # boolean_schema.json 18 0 0 532s # const.json 50 0 0 532s # contains.json 21 0 0 532s # default.json 7 0 0 532s # definitions.json 2 0 0 532s # dependencies.json 36 0 0 532s # enum.json 45 0 0 532s # exclusiveMaximum.json 4 0 0 532s # exclusiveMinimum.json 4 0 0 532s # format.json 102 0 0 532s # if-then-else.json 26 0 0 532s # infinite-loop-detection.json 2 0 0 532s # items.json 28 0 0 532s # maxItems.json 6 0 0 532s # maxLength.json 7 0 0 532s # maxProperties.json 10 0 0 532s # maximum.json 8 0 0 532s # minItems.json 6 0 0 532s # minLength.json 7 0 0 532s # minProperties.json 8 0 0 532s # minimum.json 11 0 0 532s # multipleOf.json 10 0 0 532s # not.json 38 0 0 532s # oneOf.json 27 0 0 532s # pattern.json 9 0 0 532s # patternProperties.json 23 0 0 532s # properties.json 28 0 0 532s # propertyNames.json 13 0 0 532s # ref.json 78 0 0 532s # refRemote.json 23 0 0 532s # required.json 16 0 0 532s # type.json 80 0 0 532s # uniqueItems.json 69 0 0 532s # optional/bignum.json 9 0 0 532s # optional/content.json 10 0 0 532s # optional/cross-draft.json 2 0 0 532s # optional/ecmascript-regex.json 60 14 0 532s # optional/float-overflow.json 1 0 0 532s # optional/id.json 7 0 0 532s # optional/non-bmp-regex.json 12 0 0 532s # optional/unknownKeyword.json 3 0 0 532s # --------------------------------------------------------------- 532s # TOTAL 1010 14 0 532s # 532s # Congratulations, all non-optional tests are passing! 532s # 532s ok 1025 - no leaks in the main evaluator object 532s ok 1026 - no leaks in the short-circuiting evaluator object 532s 1..1026 532s ok 532s t/zzz-check-breaks.t .................... 532s 1..2 532s ok 1 # skip no conflicts module found to check against 532s ok 2 - checked x_breaks data 532s ok 532s All tests successful. 532s 532s Test Summary Report 532s ------------------- 532s t/zzz-acceptance-draft2019-09-format.t (Wstat: 0 Tests: 473 Failed: 0) 532s TODO passed: 131-135, 146-201, 258-270, 282, 415-424 532s 450 532s t/zzz-acceptance-draft2019-09.t (Wstat: 0 Tests: 1376 Failed: 0) 532s TODO passed: 1237-1272, 1281-1290, 1296, 1307, 1318-1319 532s 1326, 1335-1336, 1343, 1366-1371 532s t/zzz-acceptance-draft2020-12-format.t (Wstat: 0 Tests: 480 Failed: 0) 532s TODO passed: 118-119, 138-142, 153-208, 265-277, 289 532s 422-431, 457 532s t/zzz-acceptance-draft2020-12.t (Wstat: 0 Tests: 1406 Failed: 0) 532s TODO passed: 1260-1295, 1306-1315, 1321, 1332, 1343-1344 532s 1351-1352, 1361-1362, 1369, 1396-1401 532s t/zzz-acceptance-draft4-format.t (Wstat: 0 Tests: 153 Failed: 0) 532s TODO passed: 59-62, 151 532s t/zzz-acceptance-draft4.t (Wstat: 0 Tests: 712 Failed: 0) 532s TODO passed: 446, 611-612, 628-637, 643, 654, 665-666 532s 673, 682-683, 690 532s t/zzz-acceptance-draft6-format.t (Wstat: 0 Tests: 214 Failed: 0) 532s TODO passed: 59-62, 177-186, 212 532s t/zzz-acceptance-draft6.t (Wstat: 0 Tests: 930 Failed: 0) 532s TODO passed: 840-849, 855, 866, 877-878, 885, 894-895 532s 902 532s t/zzz-acceptance-draft7-format.t (Wstat: 0 Tests: 425 Failed: 0) 532s TODO passed: 106-109, 120-174, 231-243, 255, 388-397 532s 423 532s t/zzz-acceptance-draft7.t (Wstat: 0 Tests: 1026 Failed: 0) 532s TODO passed: 936-945, 951, 962, 973-974, 981, 990-991 532s 998 532s Files=44, Tests=10302, 84 wallclock secs ( 5.79 usr 0.19 sys + 81.24 cusr 1.47 csys = 88.69 CPU) 532s Result: PASS 532s autopkgtest [09:22:59]: test autodep8-perl-build-deps: -----------------------] 533s autopkgtest [09:23:00]: test autodep8-perl-build-deps: - - - - - - - - - - results - - - - - - - - - - 533s autodep8-perl-build-deps PASS 533s autopkgtest [09:23:00]: test autodep8-perl: preparing testbed 1525s nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonnova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 x-openstack-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 1525s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 x-compute-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad x-openstack-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "zhWU3aE4u4HA"}} 1525s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d x-openstack-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:27Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | Property | Value | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | OS-DCF:diskConfig | MANUAL | 1525s | OS-EXT-AZ:availability_zone | | 1525s | OS-EXT-SRV-ATTR:host | - | 1525s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 1525s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 1525s | OS-EXT-SRV-ATTR:instance_name | | 1525s | OS-EXT-SRV-ATTR:kernel_id | | 1525s | OS-EXT-SRV-ATTR:launch_index | 0 | 1525s | OS-EXT-SRV-ATTR:ramdisk_id | | 1525s | OS-EXT-SRV-ATTR:reservation_id | r-ke8jdmsh | 1525s | OS-EXT-SRV-ATTR:root_device_name | - | 1525s | OS-EXT-STS:power_state | 0 | 1525s | OS-EXT-STS:task_state | scheduling | 1525s | OS-EXT-STS:vm_state | building | 1525s | OS-SRV-USG:launched_at | - | 1525s | OS-SRV-USG:terminated_at | - | 1525s | accessIPv4 | | 1525s | accessIPv6 | | 1525s | adminPass | zhWU3aE4u4HA | 1525s | config_drive | | 1525s | created | 2024-11-16T09:23:28Z | 1525s | description | - | 1525s | flavor:disk | 20 | 1525s | flavor:ephemeral | 0 | 1525s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 1525s | flavor:original_name | autopkgtest-ppc64el | 1525s | flavor:ram | 4096 | 1525s | flavor:swap | 0 | 1525s | flavor:vcpus | 2 | 1525s | hostId | | 1525s | id | a91d78d8-08be-4216-be0f-e4178603ef75 | 1525s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 1525s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 1525s | locked | False | 1525s | locked_reason | - | 1525s | metadata | {} | 1525s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 1525s | os-extended-volumes:volumes_attached | [] | 1525s | progress | 0 | 1525s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 1525s | server_groups | [] | 1525s | status | BUILD | 1525s | tags | [] | 1525s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 1525s | trusted_image_certificates | - | 1525s | updated | 2024-11-16T09:23:27Z | 1525s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 x-openstack-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s 1525s 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 x-openstack-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a9a0d440-275f-4181-bb66-06067911b593 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:38 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-208c2a83-3053-4620-b519-c678691a057b x-openstack-request-id: req-208c2a83-3053-4620-b519-c678691a057b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-208c2a83-3053-4620-b519-c678691a057b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:43 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 x-openstack-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:49 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 x-openstack-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:54 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 x-openstack-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:59 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf x-openstack-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:04 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b x-openstack-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:09 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 x-openstack-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-04c8529e-5499-430d-a931-9c317d460f86 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:15 GMT Keep-Alive: timeout=75, max=984 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-16b76cd0-3da0-41ec-a0c7-a463af7fd256 x-openstack-request-id: req-16b76cd0-3da0-41ec-a0c7-a463af7fd256 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-16b76cd0-3da0-41ec-a0c7-a463af7fd256 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:20 GMT Keep-Alive: timeout=75, max=983 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-14ffc49b-edb8-44f0-a904-6742f23d3ca9 x-openstack-request-id: req-14ffc49b-edb8-44f0-a904-6742f23d3ca9 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-14ffc49b-edb8-44f0-a904-6742f23d3ca9 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:25 GMT Keep-Alive: timeout=75, max=982 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-71c32d28-069e-45fe-811d-7ff3ba69c9bc x-openstack-request-id: req-71c32d28-069e-45fe-811d-7ff3ba69c9bc 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-71c32d28-069e-45fe-811d-7ff3ba69c9bc 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:30 GMT Keep-Alive: timeout=75, max=981 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-d827f438-cf44-458c-bcb0-b81f5adf323e x-openstack-request-id: req-d827f438-cf44-458c-bcb0-b81f5adf323e 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-d827f438-cf44-458c-bcb0-b81f5adf323e 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:35 GMT Keep-Alive: timeout=75, max=980 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-14a9a709-9e9d-450b-9120-f8dcc9d74970 x-openstack-request-id: req-14a9a709-9e9d-450b-9120-f8dcc9d74970 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-14a9a709-9e9d-450b-9120-f8dcc9d74970 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:40 GMT Keep-Alive: timeout=75, max=979 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a53653a1-8315-4a94-9a32-9e6220030fc6 x-openstack-request-id: req-a53653a1-8315-4a94-9a32-9e6220030fc6 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a53653a1-8315-4a94-9a32-9e6220030fc6 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:46 GMT Keep-Alive: timeout=75, max=978 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-624cb39d-386a-452f-b2ae-1c37ad71ea2d x-openstack-request-id: req-624cb39d-386a-452f-b2ae-1c37ad71ea2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-624cb39d-386a-452f-b2ae-1c37ad71ea2d 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:51 GMT Keep-Alive: timeout=75, max=977 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8554523b-c392-4055-be4d-05e7308ce858 x-openstack-request-id: req-8554523b-c392-4055-be4d-05e7308ce858 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-8554523b-c392-4055-be4d-05e7308ce858 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:56 GMT Keep-Alive: timeout=75, max=976 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-5c7421d4-a1d4-479b-bf58-7391fc256c81 x-openstack-request-id: req-5c7421d4-a1d4-479b-bf58-7391fc256c81 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-5c7421d4-a1d4-479b-bf58-7391fc256c81 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:01 GMT Keep-Alive: timeout=75, max=975 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ec60722-0ceb-448d-93af-caaf919b60d6 x-openstack-request-id: req-4ec60722-0ceb-448d-93af-caaf919b60d6 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ec60722-0ceb-448d-93af-caaf919b60d6 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:07 GMT Keep-Alive: timeout=75, max=974 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-09897d58-e65e-4497-a9e0-f40b956977c8 x-openstack-request-id: req-09897d58-e65e-4497-a9e0-f40b956977c8 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-09897d58-e65e-4497-a9e0-f40b956977c8 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:12 GMT Keep-Alive: timeout=75, max=973 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-89bfb9b3-4ffb-4cd2-82e4-e4f2850cf307 x-openstack-request-id: req-89bfb9b3-4ffb-4cd2-82e4-e4f2850cf307 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-89bfb9b3-4ffb-4cd2-82e4-e4f2850cf307 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:17 GMT Keep-Alive: timeout=75, max=972 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2a274a0e-6853-403d-918c-8aaf7e7e3ad9 x-openstack-request-id: req-2a274a0e-6853-403d-918c-8aaf7e7e3ad9 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-2a274a0e-6853-403d-918c-8aaf7e7e3ad9 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:22 GMT Keep-Alive: timeout=75, max=971 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-2202b1a6-69e2-4726-a966-f9d15f73a99d x-openstack-request-id: req-2202b1a6-69e2-4726-a966-f9d15f73a99d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-2202b1a6-69e2-4726-a966-f9d15f73a99d 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:27 GMT Keep-Alive: timeout=75, max=970 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cdbdc7cf-fdeb-44e0-82a4-06f7eea59a11 x-openstack-request-id: req-cdbdc7cf-fdeb-44e0-82a4-06f7eea59a11 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cdbdc7cf-fdeb-44e0-82a4-06f7eea59a11 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:33 GMT Keep-Alive: timeout=75, max=969 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a3827b30-0654-420b-907a-f8efcd375856 x-openstack-request-id: req-a3827b30-0654-420b-907a-f8efcd375856 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a3827b30-0654-420b-907a-f8efcd375856 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:38 GMT Keep-Alive: timeout=75, max=968 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-17d8f5b4-326f-4801-8d1d-c300aa16f312 x-openstack-request-id: req-17d8f5b4-326f-4801-8d1d-c300aa16f312 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-17d8f5b4-326f-4801-8d1d-c300aa16f312 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:43 GMT Keep-Alive: timeout=75, max=967 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9f2a7e0a-de62-47fd-b465-5115413ff6f8 x-openstack-request-id: req-9f2a7e0a-de62-47fd-b465-5115413ff6f8 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9f2a7e0a-de62-47fd-b465-5115413ff6f8 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:48 GMT Keep-Alive: timeout=75, max=966 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-785cb2a1-1b7c-4d91-a143-9c0fc82bf84f x-openstack-request-id: req-785cb2a1-1b7c-4d91-a143-9c0fc82bf84f 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-785cb2a1-1b7c-4d91-a143-9c0fc82bf84f 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:54 GMT Keep-Alive: timeout=75, max=965 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-34b49ab1-d07e-4063-92c1-ef8aaeff083c x-openstack-request-id: req-34b49ab1-d07e-4063-92c1-ef8aaeff083c 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-34b49ab1-d07e-4063-92c1-ef8aaeff083c 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:25:59 GMT Keep-Alive: timeout=75, max=964 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a6d8da3f-2415-4659-96c9-68f65d9c6ecc x-openstack-request-id: req-a6d8da3f-2415-4659-96c9-68f65d9c6ecc 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a6d8da3f-2415-4659-96c9-68f65d9c6ecc 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:04 GMT Keep-Alive: timeout=75, max=963 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f5665631-a00d-40a5-b169-ce4bc52691eb x-openstack-request-id: req-f5665631-a00d-40a5-b169-ce4bc52691eb 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-f5665631-a00d-40a5-b169-ce4bc52691eb 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:09 GMT Keep-Alive: timeout=75, max=962 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-d62359dc-c416-4840-b506-f052bda6a589 x-openstack-request-id: req-d62359dc-c416-4840-b506-f052bda6a589 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-d62359dc-c416-4840-b506-f052bda6a589 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:14 GMT Keep-Alive: timeout=75, max=961 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6f09a9bb-95ab-4287-8ec6-319fbdb53016 x-openstack-request-id: req-6f09a9bb-95ab-4287-8ec6-319fbdb53016 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6f09a9bb-95ab-4287-8ec6-319fbdb53016 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:20 GMT Keep-Alive: timeout=75, max=960 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-d66713f5-057f-4630-a2bb-e270132908e3 x-openstack-request-id: req-d66713f5-057f-4630-a2bb-e270132908e3 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-d66713f5-057f-4630-a2bb-e270132908e3 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:25 GMT Keep-Alive: timeout=75, max=959 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b48ee8a2-4b33-4106-bbde-2b42c46ecd7a x-openstack-request-id: req-b48ee8a2-4b33-4106-bbde-2b42c46ecd7a 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b48ee8a2-4b33-4106-bbde-2b42c46ecd7a 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:30 GMT Keep-Alive: timeout=75, max=958 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a19dde34-89ee-4032-a6a5-3ee00da553f0 x-openstack-request-id: req-a19dde34-89ee-4032-a6a5-3ee00da553f0 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a19dde34-89ee-4032-a6a5-3ee00da553f0 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:36 GMT Keep-Alive: timeout=75, max=957 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-7e83269d-beab-4b4e-8295-983c70346f8a x-openstack-request-id: req-7e83269d-beab-4b4e-8295-983c70346f8a 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-7e83269d-beab-4b4e-8295-983c70346f8a 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:41 GMT Keep-Alive: timeout=75, max=956 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-51ef2f85-1e75-41b4-88e9-068fe43a2629 x-openstack-request-id: req-51ef2f85-1e75-41b4-88e9-068fe43a2629 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-51ef2f85-1e75-41b4-88e9-068fe43a2629 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:46 GMT Keep-Alive: timeout=75, max=955 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-fe5b5ffe-2203-4460-b8b2-7ebd4cf126d0 x-openstack-request-id: req-fe5b5ffe-2203-4460-b8b2-7ebd4cf126d0 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-fe5b5ffe-2203-4460-b8b2-7ebd4cf126d0 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:51 GMT Keep-Alive: timeout=75, max=954 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-0f7ce687-77a2-4e90-8f63-e8dbc319383b x-openstack-request-id: req-0f7ce687-77a2-4e90-8f63-e8dbc319383b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-0f7ce687-77a2-4e90-8f63-e8dbc319383b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:26:57 GMT Keep-Alive: timeout=75, max=953 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b1037de8-8b59-4c7a-94f2-3faec4df648d x-openstack-request-id: req-b1037de8-8b59-4c7a-94f2-3faec4df648d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b1037de8-8b59-4c7a-94f2-3faec4df648d 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:02 GMT Keep-Alive: timeout=75, max=952 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-11f850dd-528a-4ab4-a0cd-f295b4815196 x-openstack-request-id: req-11f850dd-528a-4ab4-a0cd-f295b4815196 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-11f850dd-528a-4ab4-a0cd-f295b4815196 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:07 GMT Keep-Alive: timeout=75, max=951 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a2b4df64-3737-48c8-b482-aa72d4886de6 x-openstack-request-id: req-a2b4df64-3737-48c8-b482-aa72d4886de6 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a2b4df64-3737-48c8-b482-aa72d4886de6 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:12 GMT Keep-Alive: timeout=75, max=950 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-829bbb96-0cb6-4838-b0a5-909c288ab062 x-openstack-request-id: req-829bbb96-0cb6-4838-b0a5-909c288ab062 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-829bbb96-0cb6-4838-b0a5-909c288ab062 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:17 GMT Keep-Alive: timeout=75, max=949 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9d64f843-684f-480a-b2c3-080f7afb06dd x-openstack-request-id: req-9d64f843-684f-480a-b2c3-080f7afb06dd 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9d64f843-684f-480a-b2c3-080f7afb06dd 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:23 GMT Keep-Alive: timeout=75, max=948 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-5e6c8668-cd7c-4117-adf3-7a5c1714f50e x-openstack-request-id: req-5e6c8668-cd7c-4117-adf3-7a5c1714f50e 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-5e6c8668-cd7c-4117-adf3-7a5c1714f50e 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:28 GMT Keep-Alive: timeout=75, max=947 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-87f53b47-3133-4ee6-8821-754541efbf6c x-openstack-request-id: req-87f53b47-3133-4ee6-8821-754541efbf6c 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-87f53b47-3133-4ee6-8821-754541efbf6c 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:33 GMT Keep-Alive: timeout=75, max=946 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b323edb2-c1d7-42e7-b6b6-6c94e85c542f x-openstack-request-id: req-b323edb2-c1d7-42e7-b6b6-6c94e85c542f 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b323edb2-c1d7-42e7-b6b6-6c94e85c542f 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:38 GMT Keep-Alive: timeout=75, max=945 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-056c600e-45f5-4a96-90ea-54ed0724a037 x-openstack-request-id: req-056c600e-45f5-4a96-90ea-54ed0724a037 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-056c600e-45f5-4a96-90ea-54ed0724a037 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:44 GMT Keep-Alive: timeout=75, max=944 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4f022a30-b72d-4e21-a26f-919f4795b6c4 x-openstack-request-id: req-4f022a30-b72d-4e21-a26f-919f4795b6c4 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4f022a30-b72d-4e21-a26f-919f4795b6c4 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:49 GMT Keep-Alive: timeout=75, max=943 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-985cc9e7-25b8-44e9-9b46-26bad7579e6e x-openstack-request-id: req-985cc9e7-25b8-44e9-9b46-26bad7579e6e 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-985cc9e7-25b8-44e9-9b46-26bad7579e6e 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:54 GMT Keep-Alive: timeout=75, max=942 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8f4f9a47-48ab-4206-b835-e27a7061722b x-openstack-request-id: req-8f4f9a47-48ab-4206-b835-e27a7061722b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-8f4f9a47-48ab-4206-b835-e27a7061722b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:27:59 GMT Keep-Alive: timeout=75, max=941 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ebc06b9e-61fd-485f-b6af-0479542ded59 x-openstack-request-id: req-ebc06b9e-61fd-485f-b6af-0479542ded59 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-ebc06b9e-61fd-485f-b6af-0479542ded59 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:05 GMT Keep-Alive: timeout=75, max=940 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9ce27055-e2f0-4404-8c1b-84dcec3e3000 x-openstack-request-id: req-9ce27055-e2f0-4404-8c1b-84dcec3e3000 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9ce27055-e2f0-4404-8c1b-84dcec3e3000 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:10 GMT Keep-Alive: timeout=75, max=939 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-77eab7da-ee62-459e-9fd4-0a30df93fb40 x-openstack-request-id: req-77eab7da-ee62-459e-9fd4-0a30df93fb40 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-77eab7da-ee62-459e-9fd4-0a30df93fb40 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:15 GMT Keep-Alive: timeout=75, max=938 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-f8cdf032-2af6-4e49-bee5-1d5e7f65ad5e x-openstack-request-id: req-f8cdf032-2af6-4e49-bee5-1d5e7f65ad5e 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-f8cdf032-2af6-4e49-bee5-1d5e7f65ad5e 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:20 GMT Keep-Alive: timeout=75, max=937 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c7d122d4-f0b8-4334-b88c-b4631563d35e x-openstack-request-id: req-c7d122d4-f0b8-4334-b88c-b4631563d35e 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-c7d122d4-f0b8-4334-b88c-b4631563d35e 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:25 GMT Keep-Alive: timeout=75, max=936 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-dfa26dc1-aa19-43b0-b7dd-3432eae6e625 x-openstack-request-id: req-dfa26dc1-aa19-43b0-b7dd-3432eae6e625 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-dfa26dc1-aa19-43b0-b7dd-3432eae6e625 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:31 GMT Keep-Alive: timeout=75, max=935 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-03a0408f-c91e-4446-8548-faa6c4fef270 x-openstack-request-id: req-03a0408f-c91e-4446-8548-faa6c4fef270 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-03a0408f-c91e-4446-8548-faa6c4fef270 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:36 GMT Keep-Alive: timeout=75, max=934 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4e7c07f4-e4db-49ac-8b88-b81c61683aa3 x-openstack-request-id: req-4e7c07f4-e4db-49ac-8b88-b81c61683aa3 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4e7c07f4-e4db-49ac-8b88-b81c61683aa3 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:41 GMT Keep-Alive: timeout=75, max=933 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-8b2f61fa-5900-4df9-a5fd-7a843bbe70b4 x-openstack-request-id: req-8b2f61fa-5900-4df9-a5fd-7a843bbe70b4 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-8b2f61fa-5900-4df9-a5fd-7a843bbe70b4 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:46 GMT Keep-Alive: timeout=75, max=932 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-94ceaa83-f1a8-4be8-8f57-21ba2e9e2de1 x-openstack-request-id: req-94ceaa83-f1a8-4be8-8f57-21ba2e9e2de1 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-94ceaa83-f1a8-4be8-8f57-21ba2e9e2de1 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:51 GMT Keep-Alive: timeout=75, max=931 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9968051e-8a52-437f-9f9f-dfde30837a99 x-openstack-request-id: req-9968051e-8a52-437f-9f9f-dfde30837a99 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9968051e-8a52-437f-9f9f-dfde30837a99 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:28:58 GMT Keep-Alive: timeout=75, max=930 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-88d58820-6738-4698-9eea-9e0e00f76584 x-openstack-request-id: req-88d58820-6738-4698-9eea-9e0e00f76584 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-88d58820-6738-4698-9eea-9e0e00f76584 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:29:03 GMT Keep-Alive: timeout=75, max=929 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-e874f5ff-dace-466b-97b2-8cb71b5bb2c3 x-openstack-request-id: req-e874f5ff-dace-466b-97b2-8cb71b5bb2c3 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-e874f5ff-dace-466b-97b2-8cb71b5bb2c3 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:29:09 GMT Keep-Alive: timeout=75, max=928 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-3b342a7c-8ea2-413b-8912-a8a88663472f x-openstack-request-id: req-3b342a7c-8ea2-413b-8912-a8a88663472f 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-3b342a7c-8ea2-413b-8912-a8a88663472f 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:29:14 GMT Keep-Alive: timeout=75, max=927 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-7f0e4f60-08e5-40bb-8be8-63c5b741081d x-openstack-request-id: req-7f0e4f60-08e5-40bb-8be8-63c5b741081d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 x-openstack-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 1525s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 x-compute-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad x-openstack-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "zhWU3aE4u4HA"}} 1525s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d x-openstack-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:27Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | Property | Value | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | OS-DCF:diskConfig | MANUAL | 1525s | OS-EXT-AZ:availability_zone | | 1525s | OS-EXT-SRV-ATTR:host | - | 1525s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 1525s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 1525s | OS-EXT-SRV-ATTR:instance_name | | 1525s | OS-EXT-SRV-ATTR:kernel_id | | 1525s | OS-EXT-SRV-ATTR:launch_index | 0 | 1525s | OS-EXT-SRV-ATTR:ramdisk_id | | 1525s | OS-EXT-SRV-ATTR:reservation_id | r-ke8jdmsh | 1525s | OS-EXT-SRV-ATTR:root_device_name | - | 1525s | OS-EXT-STS:power_state | 0 | 1525s | OS-EXT-STS:task_state | scheduling | 1525s | OS-EXT-STS:vm_state | building | 1525s | OS-SRV-USG:launched_at | - | 1525s | OS-SRV-USG:terminated_at | - | 1525s | accessIPv4 | | 1525s | accessIPv6 | | 1525s | adminPass | zhWU3aE4u4HA | 1525s | config_drive | | 1525s | created | 2024-11-16T09:23:28Z | 1525s | description | - | 1525s | flavor:disk | 20 | 1525s | flavor:ephemeral | 0 | 1525s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 1525s | flavor:original_name | autopkgtest-ppc64el | 1525s | flavor:ram | 4096 | 1525s | flavor:swap | 0 | 1525s | flavor:vcpus | 2 | 1525s | hostId | | 1525s | id | a91d78d8-08be-4216-be0f-e4178603ef75 | 1525s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 1525s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 1525s | locked | False | 1525s | locked_reason | - | 1525s | metadata | {} | 1525s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 1525s | os-extended-volumes:volumes_attached | [] | 1525s | progress | 0 | 1525s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 1525s | server_groups | [] | 1525s | status | BUILD | 1525s | tags | [] | 1525s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 1525s | trusted_image_certificates | - | 1525s | updated | 2024-11-16T09:23:27Z | 1525s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 x-openstack-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s 1525s 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 x-openstack-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a9a0d440-275f-4181-bb66-06067911b593 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:38 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-208c2a83-3053-4620-b519-c678691a057b x-openstack-request-id: req-208c2a83-3053-4620-b519-c678691a057b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-208c2a83-3053-4620-b519-c678691a057b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:43 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 x-openstack-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:49 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 x-openstack-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:54 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 x-openstack-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:59 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf x-openstack-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:04 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b x-openstack-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:09 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 x-openstack-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-04c8529e-5499-430d-a931-9c317d460f86 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 x-openstack-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 1525s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 x-compute-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad x-openstack-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "zhWU3aE4u4HA"}} 1525s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d x-openstack-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:27Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | Property | Value | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | OS-DCF:diskConfig | MANUAL | 1525s | OS-EXT-AZ:availability_zone | | 1525s | OS-EXT-SRV-ATTR:host | - | 1525s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 1525s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 1525s | OS-EXT-SRV-ATTR:instance_name | | 1525s | OS-EXT-SRV-ATTR:kernel_id | | 1525s | OS-EXT-SRV-ATTR:launch_index | 0 | 1525s | OS-EXT-SRV-ATTR:ramdisk_id | | 1525s | OS-EXT-SRV-ATTR:reservation_id | r-ke8jdmsh | 1525s | OS-EXT-SRV-ATTR:root_device_name | - | 1525s | OS-EXT-STS:power_state | 0 | 1525s | OS-EXT-STS:task_state | scheduling | 1525s | OS-EXT-STS:vm_state | building | 1525s | OS-SRV-USG:launched_at | - | 1525s | OS-SRV-USG:terminated_at | - | 1525s | accessIPv4 | | 1525s | accessIPv6 | | 1525s | adminPass | zhWU3aE4u4HA | 1525s | config_drive | | 1525s | created | 2024-11-16T09:23:28Z | 1525s | description | - | 1525s | flavor:disk | 20 | 1525s | flavor:ephemeral | 0 | 1525s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 1525s | flavor:original_name | autopkgtest-ppc64el | 1525s | flavor:ram | 4096 | 1525s | flavor:swap | 0 | 1525s | flavor:vcpus | 2 | 1525s | hostId | | 1525s | id | a91d78d8-08be-4216-be0f-e4178603ef75 | 1525s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 1525s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 1525s | locked | False | 1525s | locked_reason | - | 1525s | metadata | {} | 1525s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 1525s | os-extended-volumes:volumes_attached | [] | 1525s | progress | 0 | 1525s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 1525s | server_groups | [] | 1525s | status | BUILD | 1525s | tags | [] | 1525s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 1525s | trusted_image_certificates | - | 1525s | updated | 2024-11-16T09:23:27Z | 1525s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 x-openstack-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s 1525s 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 x-openstack-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a9a0d440-275f-4181-bb66-06067911b593 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:38 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-208c2a83-3053-4620-b519-c678691a057b x-openstack-request-id: req-208c2a83-3053-4620-b519-c678691a057b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-208c2a83-3053-4620-b519-c678691a057b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:43 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 x-openstack-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:49 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 x-openstack-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:54 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 x-openstack-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:59 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf x-openstack-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:04 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b x-openstack-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:09 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 x-openstack-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-04c8529e-5499-430d-a931-9c317d460f86 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 x-openstack-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 1525s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 x-compute-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad x-openstack-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "zhWU3aE4u4HA"}} 1525s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d x-openstack-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:27Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | Property | Value | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | OS-DCF:diskConfig | MANUAL | 1525s | OS-EXT-AZ:availability_zone | | 1525s | OS-EXT-SRV-ATTR:host | - | 1525s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 1525s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 1525s | OS-EXT-SRV-ATTR:instance_name | | 1525s | OS-EXT-SRV-ATTR:kernel_id | | 1525s | OS-EXT-SRV-ATTR:launch_index | 0 | 1525s | OS-EXT-SRV-ATTR:ramdisk_id | | 1525s | OS-EXT-SRV-ATTR:reservation_id | r-ke8jdmsh | 1525s | OS-EXT-SRV-ATTR:root_device_name | - | 1525s | OS-EXT-STS:power_state | 0 | 1525s | OS-EXT-STS:task_state | scheduling | 1525s | OS-EXT-STS:vm_state | building | 1525s | OS-SRV-USG:launched_at | - | 1525s | OS-SRV-USG:terminated_at | - | 1525s | accessIPv4 | | 1525s | accessIPv6 | | 1525s | adminPass | zhWU3aE4u4HA | 1525s | config_drive | | 1525s | created | 2024-11-16T09:23:28Z | 1525s | description | - | 1525s | flavor:disk | 20 | 1525s | flavor:ephemeral | 0 | 1525s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 1525s | flavor:original_name | autopkgtest-ppc64el | 1525s | flavor:ram | 4096 | 1525s | flavor:swap | 0 | 1525s | flavor:vcpus | 2 | 1525s | hostId | | 1525s | id | a91d78d8-08be-4216-be0f-e4178603ef75 | 1525s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 1525s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 1525s | locked | False | 1525s | locked_reason | - | 1525s | metadata | {} | 1525s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 1525s | os-extended-volumes:volumes_attached | [] | 1525s | progress | 0 | 1525s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 1525s | server_groups | [] | 1525s | status | BUILD | 1525s | tags | [] | 1525s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 1525s | trusted_image_certificates | - | 1525s | updated | 2024-11-16T09:23:27Z | 1525s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 x-openstack-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s 1525s 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 x-openstack-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a9a0d440-275f-4181-bb66-06067911b593 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:38 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-208c2a83-3053-4620-b519-c678691a057b x-openstack-request-id: req-208c2a83-3053-4620-b519-c678691a057b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-208c2a83-3053-4620-b519-c678691a057b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:43 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 x-openstack-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:49 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 x-openstack-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:54 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 x-openstack-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:59 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf x-openstack-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:04 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b x-openstack-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:09 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 x-openstack-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-04c8529e-5499-430d-a931-9c317d460f86 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-426d-9380-5eea778aabc2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e628d527-f077-426d-9380-5eea778aabc2"}], "description": null}, {"id": "e752e039-cbe4-4a16-8197-de87ba42b83e", "name": "builder-ppc64el-cpu64-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e752e039-cbe4-4a16-8197-de87ba42b83e"}], "description": null}, {"id": "e7f811c8-a60c-45c6-86c8-8e4b025751df", "name": "builder-ppc64el-cpu4-ram16-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e7f811c8-a60c-45c6-86c8-8e4b025751df"}], "description": null}, {"id": "eb80d7e2-b6e1-42a5-b80d-3dad861f6989", "name": "builder-ppc64el-cpu16-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/eb80d7e2-b6e1-42a5-b80d-3dad861f6989"}], "description": null}, {"id": "ed127e2b-02b8-4e61-bf10-0c89b90928e6", "name": "builder-ppc64el-cpu64-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ed127e2b-02b8-4e61-bf10-0c89b90928e6"}], "description": null}, {"id": "ef7301a7-71f4-48ac-b387-23251f4060e1", "name": "builder-ppc64el-cpu16-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ef7301a7-71f4-48ac-b387-23251f4060e1"}], "description": null}, {"id": "f0f1af4d-f230-40c1-b789-c94e02a68daa", "name": "builder-ppc64el-cpu16-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f0f1af4d-f230-40c1-b789-c94e02a68daa"}], "description": null}, {"id": "f40b2dbc-5d69-40b0-a9fc-71c32de93ca3", "name": "autopkgtest-big-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f40b2dbc-5d69-40b0-a9fc-71c32de93ca3"}], "description": null}, {"id": "f6aae414-e26b-4692-95d4-d851b6993c2a", "name": "builder-ppc64el-cpu2-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f6aae414-e26b-4692-95d4-d851b6993c2a"}], "description": null}, {"id": "f91b245b-ad92-47f6-8861-d1e070fcc19c", "name": "builder-ppc64el-cpu2-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/f91b245b-ad92-47f6-8861-d1e070fcc19c"}], "description": null}, {"id": "fa3bbba4-5e72-4ca3-9661-ccf45947bbf5", "name": "builder-ppc64el-cpu16-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/fa3bbba4-5e72-4ca3-9661-ccf45947bbf5"}], "description": null}, {"id": "ff4cf1ee-6e00-49b7-9d11-fafa69b910df", "name": "builder-ppc64el-cpu8-ram32-disk40", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ff4cf1ee-6e00-49b7-9d11-fafa69b910df"}], "description": null}]} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None used request id req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 HTTP/1.1" 200 623 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 623 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=996 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 x-openstack-request-id: req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:580) RESP BODY: {"flavor": {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "ram": 4096, "disk": 20, "swap": 0, "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 2, "os-flavor-access:is_public": false, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null, "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280 used request id req-916b3afc-083b-4910-8c3e-f91f61ec0519 1525s DEBUG (session:517) REQ: curl -g -i -X POST https://nova.ps6.canonical.com:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" -d '{"server": {"name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "imageRef": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "flavorRef": "102d0b57-e8d2-46c6-9be4-f452119a0280", "user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "min_count": 1, "max_count": 1, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "networks": [{"uuid": "3083d638-5564-4f5c-97ef-09f045123d20"}]}}' 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "POST /v2.1/servers HTTP/1.1" 202 479 1525s DEBUG (session:548) RESP: [202] Connection: Keep-Alive Content-Length: 479 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=995 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 location: https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 x-compute-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad x-openstack-request-id: req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "adminPass": "zhWU3aE4u4HA"}} 1525s DEBUG (session:936) POST call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers used request id req-0b8b9cda-059b-407b-80e7-ad8e4f0a70ad 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=994 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d x-openstack-request-id: req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:27Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a7f2a992-d651-4610-8a80-6e673cfd8b2d 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=999 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-14ba62b7-fc55-469b-9192-e3c9f2af0fbf 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | Property | Value | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+ 1525s | OS-DCF:diskConfig | MANUAL | 1525s | OS-EXT-AZ:availability_zone | | 1525s | OS-EXT-SRV-ATTR:host | - | 1525s | OS-EXT-SRV-ATTR:hostname | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j | 1525s | OS-EXT-SRV-ATTR:hypervisor_hostname | - | 1525s | OS-EXT-SRV-ATTR:instance_name | | 1525s | OS-EXT-SRV-ATTR:kernel_id | | 1525s | OS-EXT-SRV-ATTR:launch_index | 0 | 1525s | OS-EXT-SRV-ATTR:ramdisk_id | | 1525s | OS-EXT-SRV-ATTR:reservation_id | r-ke8jdmsh | 1525s | OS-EXT-SRV-ATTR:root_device_name | - | 1525s | OS-EXT-STS:power_state | 0 | 1525s | OS-EXT-STS:task_state | scheduling | 1525s | OS-EXT-STS:vm_state | building | 1525s | OS-SRV-USG:launched_at | - | 1525s | OS-SRV-USG:terminated_at | - | 1525s | accessIPv4 | | 1525s | accessIPv6 | | 1525s | adminPass | zhWU3aE4u4HA | 1525s | config_drive | | 1525s | created | 2024-11-16T09:23:28Z | 1525s | description | - | 1525s | flavor:disk | 20 | 1525s | flavor:ephemeral | 0 | 1525s | flavor:extra_specs | {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"} | 1525s | flavor:original_name | autopkgtest-ppc64el | 1525s | flavor:ram | 4096 | 1525s | flavor:swap | 0 | 1525s | flavor:vcpus | 2 | 1525s | hostId | | 1525s | id | a91d78d8-08be-4216-be0f-e4178603ef75 | 1525s | image | adt/ubuntu-plucky-ppc64el-server-20241116.img (15791211-52aa-41ae-85a0-a7d39a3f1ee4) | 1525s | key_name | testbed-juju-7f2275-prod-proposed-migration-environment-15 | 1525s | locked | False | 1525s | locked_reason | - | 1525s | metadata | {} | 1525s | name | adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 | 1525s | os-extended-volumes:volumes_attached | [] | 1525s | progress | 0 | 1525s | security_groups | autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup | 1525s | server_groups | [] | 1525s | status | BUILD | 1525s | tags | [] | 1525s | tenant_id | 623df63b80274c21bc79a0c35e68d615 | 1525s | trusted_image_certificates | - | 1525s | updated | 2024-11-16T09:23:27Z | 1525s | user_id | c871debdeffd4cb8b69ce618fc4aa361 | 1525s +--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3218 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3218 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:28 GMT Keep-Alive: timeout=75, max=993 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 x-openstack-request-id: req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:28Z", "updated": "2024-11-16T09:23:28Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "OS-EXT-SRV-ATTR:host": null, "OS-EXT-SRV-ATTR:instance_name": "", "OS-EXT-SRV-ATTR:hypervisor_hostname": null, "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": null, "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "scheduling", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-6b3892b0-2730-40d0-b2ae-c45964d46b97 1525s 1525s 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:33 GMT Keep-Alive: timeout=75, max=992 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 x-openstack-request-id: req-a9a0d440-275f-4181-bb66-06067911b593 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-a9a0d440-275f-4181-bb66-06067911b593 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:38 GMT Keep-Alive: timeout=75, max=991 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-208c2a83-3053-4620-b519-c678691a057b x-openstack-request-id: req-208c2a83-3053-4620-b519-c678691a057b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-208c2a83-3053-4620-b519-c678691a057b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:43 GMT Keep-Alive: timeout=75, max=990 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 x-openstack-request-id: req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-4ad24e16-bf40-4649-9e18-65bf50c6b013 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:49 GMT Keep-Alive: timeout=75, max=989 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 x-openstack-request-id: req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-cf2cd855-229a-4362-a77e-39db57f8db74 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:54 GMT Keep-Alive: timeout=75, max=988 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 x-openstack-request-id: req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-207c925c-e8e8-4bf9-af7e-0f8194e1e7d7 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:59 GMT Keep-Alive: timeout=75, max=987 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf x-openstack-request-id: req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-b8a82fb2-c39c-4444-afcf-db83688016bf 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:04 GMT Keep-Alive: timeout=75, max=986 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b x-openstack-request-id: req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-9cbe93dd-9e07-48e5-a906-9c3c340fb84b 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 HTTP/1.1" 200 3505 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 3505 Content-Type: application/json Date: Sat, 16 Nov 2024 09:24:09 GMT Keep-Alive: timeout=75, max=985 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 x-openstack-request-id: req-04c8529e-5499-430d-a931-9c317d460f86 1525s DEBUG (session:580) RESP BODY: {"server": {"id": "a91d78d8-08be-4216-be0f-e4178603ef75", "name": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7", "status": "BUILD", "tenant_id": "623df63b80274c21bc79a0c35e68d615", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "metadata": {}, "hostId": "d1425ac49e4495a96280b4f370650e2b1a298d7eeb82484fcbf09785", "image": {"id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "links": [{"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4"}]}, "flavor": {"vcpus": 2, "ram": 4096, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "autopkgtest-ppc64el", "extra_specs": {"aggregate_instance_extra_specs:commit": "builder-ppc64el", "hw_rng:allowed": "True"}}, "created": "2024-11-16T09:23:27Z", "updated": "2024-11-16T09:23:30Z", "addresses": {}, "accessIPv4": "", "accessIPv6": "", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/servers/a91d78d8-08be-4216-be0f-e4178603ef75"}], "OS-DCF:diskConfig": "MANUAL", "progress": 0, "OS-EXT-AZ:availability_zone": "availability-zone-2", "config_drive": "", "key_name": "testbed-juju-7f2275-prod-proposed-migration-environment-15", "OS-SRV-USG:launched_at": null, "OS-SRV-USG:terminated_at": null, "security_groups": [{"name": "autopkgtest-juju-7f2275-prod-proposed-migration-environment-15@bos03-ppc64el-30.secgroup"}], "OS-EXT-SRV-ATTR:host": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:instance_name": "instance-003b23de", "OS-EXT-SRV-ATTR:hypervisor_hostname": "ps6-ra3-ppc64el-n1.ps6.canonical.com", "OS-EXT-SRV-ATTR:reservation_id": "r-ke8jdmsh", "OS-EXT-SRV-ATTR:launch_index": 0, "OS-EXT-SRV-ATTR:hostname": "adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-j", "OS-EXT-SRV-ATTR:kernel_id": "", "OS-EXT-SRV-ATTR:ramdisk_id": "", "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda", "OS-EXT-SRV-ATTR:user_data": "I2Nsb3VkLWNvbmZpZwpob3N0bmFtZTogYXV0b3BrZ3Rlc3QKZnFkbjogYXV0b3BrZ3Rlc3QubG9jYWwKbWFuYWdlX2V0Y19ob3N0czogdHJ1ZQphcHRfdXBkYXRlOiB0cnVlCmFwdF91cGdyYWRlOiBmYWxzZQphcHRfbWlycm9yOiBodHRwOi8vZnRwbWFzdGVyLmludGVybmFsL3VidW50dS8KCnJ1bmNtZDoKIC0gZWNobyAnQWNxdWlyZTo6TGFuZ3VhZ2VzICJub25lIjsnID4gL2V0Yy9hcHQvYXB0LmNvbmYuZC85MG5vbGFuZ3VhZ2VzCiAtIGVjaG8gJ2ZvcmNlLXVuc2FmZS1pbycgPiAvZXRjL2Rwa2cvZHBrZy5jZmcuZC9hdXRvcGtndGVzdAogLSBwcmludGYgJ1xuVEVSTT1saW51eFxuJ2h0dHBfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4naHR0cHNfcHJveHk9aHR0cDovL3NxdWlkLmludGVybmFsOjMxMjgnXG4nbm9fcHJveHk9MTI3LjAuMC4xLDEyNy4wLjEuMSxsb2dpbi51YnVudHUuY29tLGxvY2FsaG9zdCxsb2NhbGRvbWFpbixub3ZhbG9jYWwsaW50ZXJuYWwsYXJjaGl2ZS51YnVudHUuY29tLHBvcnRzLnVidW50dS5jb20sc2VjdXJpdHkudWJ1bnR1LmNvbSxkZGVicy51YnVudHUuY29tLGNoYW5nZWxvZ3MudWJ1bnR1LmNvbSxrZXlzZXJ2ZXIudWJ1bnR1LmNvbSxsYXVuY2hwYWRsaWJyYXJpYW4ubmV0LGxhdW5jaHBhZGNvbnRlbnQubmV0LGxhdW5jaHBhZC5uZXQsMTAuMjQuMC4wLzI0LGtleXN0b25lLnBzNS5jYW5vbmljYWwuY29tLG9iamVjdHN0b3JhZ2UucHJvZHN0YWNrNS5jYW5vbmljYWwuY29tJ1xuJyA+PiAvZXRjL2Vudmlyb25tZW50CiAtIHNlZCAtaSAtciAnL14xMjcuMC4xLjEvIHMvYXV0b3BrZ3Rlc3QtW14gXStcLi9hdXRvcGtndGVzdFwuLycgL2V0Yy9ob3N0cwo=", "OS-EXT-STS:task_state": "spawning", "OS-EXT-STS:vm_state": "building", "OS-EXT-STS:power_state": 0, "os-extended-volumes:volumes_attached": [], "locked": false, "locked_reason": null, "description": null, "tags": [], "trusted_image_certificates": null, "server_groups": []}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 used request id req-04c8529e-5499-430d-a931-9c317d460f86 1525s Server building... 0% completeDEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/servers/a91d78d8-08be-4216-be0f-e4178603ef75 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/servers/a91d78d8-08be-4nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-42nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-42nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-42nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1525s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-42nova [W] Using flock in prodstack6-ppc64el 1525s Creating nova instance adt-plucky-ppc64el-libjson-schema-modern-perl-20241116-091406-juju-7f2275-prod-proposed-migration-environment-15-cfc70043-1e83-4bcd-9da8-615aef2e0de7 from image adt/ubuntu-plucky-ppc64el-server-20241116.img (UUID 15791211-52aa-41ae-85a0-a7d39a3f1ee4)... 1525s nova [E] nova boot failed (attempt #0): 1525s nova [E] DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://keystone.ps6.canonical.com:5000/v3 -H "Accept: application/json" -H "User-Agent: nova keystoneauth1/4.0.0 python-requests/2.22.0 CPython/3.8.10" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): keystone.ps6.canonical.com:5000 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "GET /v3 HTTP/1.1" 200 267 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 267 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:25 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) Vary: X-Auth-Token x-openstack-request-id: req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v3.14", "status": "stable", "updated": "2020-04-07T00:00:00Z", "links": [{"rel": "self", "href": "https://keystone.ps6.canonical.com:5000/v3/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}]}} 1525s DEBUG (session:946) GET call to https://keystone.ps6.canonical.com:5000/v3 used request id req-823012fb-c011-4b22-9ce9-bf3e239c34e4 1525s DEBUG (base:182) Making authentication request to https://keystone.ps6.canonical.com:5000/v3/auth/tokens 1525s DEBUG (connectionpool:429) https://keystone.ps6.canonical.com:5000 "POST /v3/auth/tokens HTTP/1.1" 201 12525 1525s DEBUG (base:187) {"token": {"methods": ["password"], "user": {"domain": {"id": "default", "name": "Default"}, "id": "c871debdeffd4cb8b69ce618fc4aa361", "name": "prod-proposed-migration-ppc64el", "password_expires_at": null}, "audit_ids": ["V7IQA98rRkC8uujGBpbLSg"], "expires_at": "2024-11-17T09:23:26.000000Z", "issued_at": "2024-11-16T09:23:26.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "623df63b80274c21bc79a0c35e68d615", "name": "prod-proposed-migration-ppc64el_project"}, "is_domain": false, "roles": [{"id": "80674fb26dab46e9a6bd57e7f8193360", "name": "load-balancer_member"}, {"id": "15cf997650e345b7b21c02b5cdb7d84a", "name": "member"}, {"id": "86bf3043974746c2bf52c2a9f362f986", "name": "reader"}], "is_admin_project": false, "catalog": [{"endpoints": [{"id": "213cdf38198c4581bd5b7d6d0836923b", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "67061eee26944a1a8009f9d07be19738", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/", "region": "prodstack6"}, {"id": "fc88c52c749a47d08a24a2c7efbde01b", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/", "region": "prodstack6"}], "id": "06e4714942634054bf9aa11715312b4e", "type": "s3", "name": "s3"}, {"endpoints": [{"id": "8aa44c94b63746bd9b37f1008ad55fa8", "interface": "admin", "region_id": "prodstack6", "url": "https://aodh-admin.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "92cf08a80a0242ebbca8ec893cf332b1", "interface": "public", "region_id": "prodstack6", "url": "https://aodh.ps6.canonical.com:8042", "region": "prodstack6"}, {"id": "d8139c6e11ae4edcb78981c12bd53212", "interface": "internal", "region_id": "prodstack6", "url": "https://aodh-internal.ps6.canonical.com:8042", "region": "prodstack6"}], "id": "2fb939b0b969435c8f0c5fa4edb4de94", "type": "alarming", "name": "aodh"}, {"endpoints": [{"id": "a49fcc80e658411885f88cdd8432a571", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "b23866fddba8415885b06c064c34b94b", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8000/v1", "region": "prodstack6"}, {"id": "f84ae55197f94b8392a678f35c82ca26", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8000/v1", "region": "prodstack6"}], "id": "3d4b59f7dab644b2b527e8e96b697545", "type": "cloudformation", "name": "heat-cfn"}, {"endpoints": [{"id": "2e0143334c6241169f45f1c11970c6bc", "interface": "public", "region_id": "prodstack6", "url": "https://heat.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "5e19c32243c04a3faf1e5f9ab900c260", "interface": "internal", "region_id": "prodstack6", "url": "https://heat-internal.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "b3fc5c88ec8543a691fec75726b86967", "interface": "admin", "region_id": "prodstack6", "url": "https://heat-admin.ps6.canonical.com:8004/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "43b926205044476b8093b18d8ce0a9e4", "type": "orchestration", "name": "heat"}, {"endpoints": [{"id": "a47569b96e5b4146a312e4673504557c", "interface": "public", "region_id": "prodstack6", "url": "https://glance.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "bba35c4ab04f4114a2a34e65568537bd", "interface": "internal", "region_id": "prodstack6", "url": "https://glance-internal.ps6.canonical.com:9292", "region": "prodstack6"}, {"id": "ef769f1117c74a62a279131486c89628", "interface": "admin", "region_id": "prodstack6", "url": "https://glance-admin.ps6.canonical.com:9292", "region": "prodstack6"}], "id": "49de724549524bd78e9cd46a4477226f", "type": "image", "name": "glance"}, {"endpoints": [{"id": "a1a41e9a1e2d42e5b6cd5380cd1e21bf", "interface": "admin", "region_id": "prodstack6", "url": "https://cinder-admin.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "d2309a99724b4111827482c68a832c0c", "interface": "public", "region_id": "prodstack6", "url": "https://cinder.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "f8a02e3949ff42afa772eb5e74dbef9f", "interface": "internal", "region_id": "prodstack6", "url": "https://cinder-internal.ps6.canonical.com:8776/v3/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "5bf6578a631349e3af4bf36d7adb18e1", "type": "volumev3", "name": "cinderv3"}, {"endpoints": [{"id": "01d84128f36444e9b01549b86bd69116", "interface": "admin", "region_id": "prodstack6", "url": "https://barbican-admin.ps6.canonical.com:9312", "region": "prodstack6"}, {"id": "0ce4a8777e0b40a88f7fc0f77e34a605", "interface": "public", "region_id": "prodstack6", "url": "https://barbican.ps6.canonical.com:9311", "region": "prodstack6"}, {"id": "f507ba49e4a7435cb330234217c92449", "interface": "internal", "region_id": "prodstack6", "url": "https://barbican-internal.ps6.canonical.com:9311", "region": "prodstack6"}], "id": "62cb1c3d9f6c45979c13516a6b3ff114", "type": "key-manager", "name": "barbican"}, {"endpoints": [{"id": "3cb6121bd8f14da8aa2fba7be823a2b4", "interface": "internal", "region_id": "prodstack6", "url": "https://neutron-internal.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "46ba11d133fe4e8f9e8f9097ba737682", "interface": "admin", "region_id": "prodstack6", "url": "https://neutron-admin.ps6.canonical.com:9696", "region": "prodstack6"}, {"id": "d872eb6aa23d40009165aa3dcdce3948", "interface": "public", "region_id": "prodstack6", "url": "https://neutron.ps6.canonical.com:9696", "region": "prodstack6"}], "id": "759cb6fdfbc146dd8b9d1ba444c4b9db", "type": "network", "name": "neutron"}, {"endpoints": [{"id": "4349d565f72446da9699269f85df5e8b", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "a483dcc58f5e415e9ec739c94474e609", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "c1f14236723e42878562d8dd63d5a6a0", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v2/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "93fc4008035946deb1f433c2dd905a5d", "type": "sharev2", "name": "manilav2"}, {"endpoints": [{"id": "0fa148793c7249c8b187b6b4ff425731", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "555ade266a6b4bcc81b6e5abf607aec5", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_e4b04ca58d734ed0aa29e306adad4f79/simplestreams/data", "region": "prodstack6"}, {"id": "7dad1a7b1552465686424fc014463173", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift/simplestreams/data", "region": "prodstack6"}], "id": "977dd359af1a4fcc91a9daf4dc33b0f3", "type": "product-streams", "name": "image-stream"}, {"endpoints": [{"id": "12d30eabcdec4831bd15273d55b1cbab", "interface": "internal", "region_id": "prodstack6", "url": "https://manila-internal.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "29d35b2b483346479f1ff1a13604d50e", "interface": "admin", "region_id": "prodstack6", "url": "https://manila-admin.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "4aa1422b8f5945d8aed9ba6a8d670e5c", "interface": "public", "region_id": "prodstack6", "url": "https://manila.ps6.canonical.com:8786/v1/623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}], "id": "ac5e4f28fa794cde99f1d7ffc1b664e5", "type": "share", "name": "manila"}, {"endpoints": [{"id": "c7db93d54a684d8caeae1d9e18a59118", "interface": "admin", "region_id": "prodstack6", "url": "https://nova-admin.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "dd7a796f401b477f9f1b5bbc05747d8d", "interface": "public", "region_id": "prodstack6", "url": "https://nova.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}, {"id": "e7ecb038d830462ea67b0b463af5e013", "interface": "internal", "region_id": "prodstack6", "url": "https://nova-internal.ps6.canonical.com:8774/v2.1", "region": "prodstack6"}], "id": "b4519af08e174d4a8333a2d14ac3ba3b", "type": "compute", "name": "nova"}, {"endpoints": [{"id": "02ef5b6154934ffd97d8b5b8e4d70d2a", "interface": "internal", "region_id": "prodstack6", "url": "https://radosgw-internal.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "2741abe526e94842a4fa801423ba1ef0", "interface": "public", "region_id": "prodstack6", "url": "https://radosgw.ps6.canonical.com:443/swift/v1/AUTH_623df63b80274c21bc79a0c35e68d615", "region": "prodstack6"}, {"id": "3742f9406c604516933d6fd8c29e0880", "interface": "admin", "region_id": "prodstack6", "url": "https://radosgw-admin.ps6.canonical.com:443/swift", "region": "prodstack6"}], "id": "c7f07a7b3b3c408c96200dfd1d1a0f6f", "type": "object-store", "name": "swift"}, {"endpoints": [{"id": "06d4ed6c160a43f2b7fa7f80ad1dc709", "interface": "internal", "region_id": "prodstack6", "url": "https://designate-internal.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "1e240624a50c4ca0aaa6ef63cbc94f1b", "interface": "admin", "region_id": "prodstack6", "url": "https://designate-admin.ps6.canonical.com:9001", "region": "prodstack6"}, {"id": "f94d7d17997a43fd9c63b34c43301c6e", "interface": "public", "region_id": "prodstack6", "url": "https://designate.ps6.canonical.com:9001", "region": "prodstack6"}], "id": "cf82013d63844fedbe96bcacb6bd1fef", "type": "dns", "name": "designate"}, {"endpoints": [{"id": "4a688340be464710bfa60bf3f88f41c4", "interface": "admin", "region_id": "prodstack6", "url": "https://gnocchi-admin.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "a5a95506c96d4716adb4efc3ac9051be", "interface": "public", "region_id": "prodstack6", "url": "https://gnocchi.ps6.canonical.com:8041", "region": "prodstack6"}, {"id": "eebc17a086834f8fa8bb6b35c8061a8c", "interface": "internal", "region_id": "prodstack6", "url": "https://gnocchi-internal.ps6.canonical.com:8041", "region": "prodstack6"}], "id": "d10589e854a446a5b852593f33f170a7", "type": "metric", "name": "gnocchi"}, {"endpoints": [{"id": "08f66df28d0f47f3bec12f29e06d85ac", "interface": "admin", "region_id": "prodstack6", "url": "https://keystone-admin.ps6.canonical.com:35357/v3", "region": "prodstack6"}, {"id": "46d270b45ceb42db902f4d241afa6a70", "interface": "public", "region_id": "prodstack6", "url": "https://keystone.ps6.canonical.com:5000/v3", "region": "prodstack6"}, {"id": "a4addee11d9349cfa46ec6660dbad947", "interface": "internal", "region_id": "prodstack6", "url": "https://keystone-internal.ps6.canonical.com:5000/v3", "region": "prodstack6"}], "id": "deb38a775a9b4e87a8de9e3eed779882", "type": "identity", "name": "keystone"}, {"endpoints": [{"id": "18b4af5f40664babb94e884c6a53ccf3", "interface": "admin", "region_id": "prodstack6", "url": "https://octavia-admin.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "2b6f7ba7f9944ee1aebd6dccc5223b2d", "interface": "internal", "region_id": "prodstack6", "url": "https://octavia-internal.ps6.canonical.com:9876", "region": "prodstack6"}, {"id": "5e3012e9c79e4890be4d964b6208f5c6", "interface": "public", "region_id": "prodstack6", "url": "https://octavia.ps6.canonical.com:9876", "region": "prodstack6"}], "id": "e00337be20d54948b66a1c3109b885c6", "type": "load-balancer", "name": "octavia"}, {"endpoints": [{"id": "2d2942b35f3041389ad810f679d02f22", "interface": "public", "region_id": "prodstack6", "url": "https://placement.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "2e3beaac7ac14284b72e2592820ad725", "interface": "admin", "region_id": "prodstack6", "url": "https://placement-admin.ps6.canonical.com:8778", "region": "prodstack6"}, {"id": "91060f6df9ae444f81808adf40540d94", "interface": "internal", "region_id": "prodstack6", "url": "https://placement-internal.ps6.canonical.com:8778", "region": "prodstack6"}], "id": "edc6e37f154f4c0ab3dd4d52b82bf873", "type": "placement", "name": "placement"}]}} 1525s REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): nova.ps6.canonical.com:8774 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1 HTTP/1.1" 302 0 1525s RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s DEBUG (session:548) RESP: [302] Connection: Keep-Alive Content-Length: 0 Content-Type: text/plain; charset=utf8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Location: https://nova.ps6.canonical.com:8774/v2.1/ Server: Apache/2.4.52 (Ubuntu) x-compute-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 x-openstack-request-id: req-7e01ba01-150f-463b-9e93-13b8a9413d47 1525s RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (session:580) RESP BODY: Omitted, Content-Type is set to text/plain; charset=utf8. Only application/json responses have their bodies logged. 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/ HTTP/1.1" 200 397 1525s RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 397 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=999 OpenStack-API-Version: compute 2.1 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.1 x-compute-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa x-openstack-request-id: req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s DEBUG (session:580) RESP BODY: {"version": {"id": "v2.1", "status": "CURRENT", "version": "2.90", "min_version": "2.1", "updated": "2013-07-23T11:33:21Z", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/"}, {"rel": "describedby", "type": "text/html", "href": "http://docs.openstack.org/"}], "media-types": [{"base": "application/json", "type": "application/vnd.openstack.compute+json;version=2.1"}]}} 1525s GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/ used request id req-54ab9863-fe12-4a00-a809-16cfd1ecfeaa 1525s DEBUG (extension:189) found extension EntryPoint.parse('v1password = swiftclient.authv1:PasswordLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('noauth = cinderclient.contrib.noauth:CinderNoAuthLoader') 1525s DEBUG (extension:189) found extension EntryPoint.parse('admin_token = keystoneauth1.loading._plugins.admin_token:AdminToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('none = keystoneauth1.loading._plugins.noauth:NoAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('password = keystoneauth1.loading._plugins.identity.generic:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('token = keystoneauth1.loading._plugins.identity.generic:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2password = keystoneauth1.loading._plugins.identity.v2:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v2token = keystoneauth1.loading._plugins.identity.v2:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3adfspassword = keystoneauth1.extras._saml2._loading:ADFSPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3applicationcredential = keystoneauth1.loading._plugins.identity.v3:ApplicationCredential') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3fedkerb = keystoneauth1.extras.kerberos._loading:MappedKerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3kerberos = keystoneauth1.extras.kerberos._loading:Kerberos') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3multifactor = keystoneauth1.loading._plugins.identity.v3:MultiFactor') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oauth1 = keystoneauth1.extras.oauth1._loading:V3OAuth1') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcaccesstoken = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAccessToken') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcauthcode = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectAuthorizationCode') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcclientcredentials = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectClientCredentials') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3oidcpassword = keystoneauth1.loading._plugins.identity.v3:OpenIDConnectPassword') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3password = keystoneauth1.loading._plugins.identity.v3:Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3samlpassword = keystoneauth1.extras._saml2._loading:Saml2Password') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3token = keystoneauth1.loading._plugins.identity.v3:Token') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3tokenlessauth = keystoneauth1.loading._plugins.identity.v3:TokenlessAuth') 1525s DEBUG (extension:189) found extension EntryPoint.parse('v3totp = keystoneauth1.loading._plugins.identity.v3:TOTP') 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:962) Starting new HTTPS connection (1): glance.ps6.canonical.com:9292 1525s DEBUG (connectionpool:429) https://glance.ps6.canonical.com:9292 "GET /v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 HTTP/1.1" 200 2292 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 2292 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=1000 Server: Apache/2.4.52 (Ubuntu) X-Openstack-Request-Id: req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:580) RESP BODY: {"architecture": "ppc64le", "base_image_ref": "302dbebd-8fb5-46eb-aa5c-84ec11ab5c95", "boot_roles": "load-balancer_member,member,reader", "content_id": "auto.sync", "hw_cdrom_bus": "scsi", "hw_disk_bus": "virtio", "hw_machine_type": "pseries", "hw_video_model": "vga", "hw_vif_model": "virtio", "image_location": "snapshot", "image_state": "available", "image_type": "snapshot", "instance_uuid": "41a7831c-bf96-43d6-b9c6-9189c9175dbe", "item_name": "disk1.img", "os_distro": "ubuntu", "os_version": "24.10", "owner_id": "623df63b80274c21bc79a0c35e68d615", "owner_project_name": "prod-proposed-migration-ppc64el_project", "owner_user_name": "prod-proposed-migration-ppc64el", "product_name": "com.ubuntu.cloud.daily:server:24.10:ppc64el", "simplestreams_metadata": "{\"aliases\": \"24.10,o,oracular,devel\", \"arch\": \"ppc64el\", \"ftype\": \"disk1.img\", \"label\": \"daily\", \"md5\": \"fd88d9a689ac4d7ab4bea632de90d355\", \"os\": \"ubuntu\", \"pubname\": \"ubuntu-oracular-daily-ppc64el-server-20241009\", \"release\": \"oracular\", \"release_codenam", "source_content_id": "com.ubuntu.cloud:daily:download", "user_id": "c871debdeffd4cb8b69ce618fc4aa361", "version_name": "20241009", "name": "adt/ubuntu-plucky-ppc64el-server-20241116.img", "disk_format": "qcow2", "container_format": "bare", "visibility": "private", "size": 2757689344, "virtual_size": 21474836480, "status": "active", "checksum": "9d94cc878e6d7c40f20165d87b574b6f", "protected": false, "min_ram": 0, "min_disk": 20, "owner": "623df63b80274c21bc79a0c35e68d615", "os_hidden": false, "os_hash_algo": "sha512", "os_hash_value": "f38ade08dce8576829e0838e90fe4fb963fd745cde1dc0d0c9167fabada23b6fc3d22b5d2b72861e12b1b25104a38dfba908bd524d859d1eacb726cf66746429", "id": "15791211-52aa-41ae-85a0-a7d39a3f1ee4", "created_at": "2024-11-16T01:43:16Z", "updated_at": "2024-11-16T01:43:55Z", "locations": [{"url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "metadata": {"store": "ceph"}}], "direct_url": "rbd://eea9d068-c18c-11ed-8dc0-013aacb71b80/glance/15791211-52aa-41ae-85a0-a7d39a3f1ee4/snap", "tags": [], "self": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4", "file": "/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4/file", "schema": "/v2/schemas/image", "stores": "ceph"} 1525s DEBUG (session:936) GET call to image for https://glance.ps6.canonical.com:9292/v2/images/15791211-52aa-41ae-85a0-a7d39a3f1ee4 used request id req-71e94f3e-2904-467c-9b8b-8e68e5f5b978 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors/autopkgtest-ppc64el HTTP/1.1" 404 92 1525s DEBUG (session:548) RESP: [404] Connection: Keep-Alive Content-Length: 92 Content-Type: application/json; charset=UTF-8 Date: Sat, 16 Nov 2024 09:23:26 GMT Keep-Alive: timeout=75, max=998 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 x-openstack-request-id: req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:580) RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor autopkgtest-ppc64el could not be found."}} 1525s DEBUG (session:936) GET call to compute for https://nova.ps6.canonical.com:8774/v2.1/flavors/autopkgtest-ppc64el used request id req-c052de2d-2420-4455-b40b-4fd1ca5ede44 1525s DEBUG (session:517) REQ: curl -g -i -X GET https://nova.ps6.canonical.com:8774/v2.1/flavors?is_public=None -H "Accept: application/json" -H "OpenStack-API-Version: compute 2.87" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}e87a6379322e990db8fb647f7417bebd5e5097cbc3e87a8150add2f9e06ac674" -H "X-OpenStack-Nova-API-Version: 2.87" 1525s DEBUG (connectionpool:429) https://nova.ps6.canonical.com:8774 "GET /v2.1/flavors?is_public=None HTTP/1.1" 200 40172 1525s DEBUG (session:548) RESP: [200] Connection: Keep-Alive Content-Length: 40172 Content-Type: application/json Date: Sat, 16 Nov 2024 09:23:27 GMT Keep-Alive: timeout=75, max=997 OpenStack-API-Version: compute 2.87 Server: Apache/2.4.52 (Ubuntu) Vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version X-OpenStack-Nova-API-Version: 2.87 x-compute-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 x-openstack-request-id: req-ee770d47-cb01-4c0e-802b-49a756943732 1528s DEBUG (session:580) RESP BODY: {"flavors": [{"id": "05338e57-e2ba-4813-9a8a-2f2af73f8ab2", "name": "builder-ppc64el-cpu2-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/05338e57-e2ba-4813-9a8a-2f2af73f8ab2"}], "description": null}, {"id": "08090b4b-98a9-4c15-8ad4-cc6711700879", "name": "builder-ppc64el-cpu8-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/08090b4b-98a9-4c15-8ad4-cc6711700879"}], "description": null}, {"id": "0825b8b1-2b9c-42bf-b3e6-e827c22d8df5", "name": "builder-ppc64el-cpu8-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0825b8b1-2b9c-42bf-b3e6-e827c22d8df5"}], "description": null}, {"id": "0b06db45-151e-44b2-b0f5-f069ad7fa1cb", "name": "builder-ppc64el-cpu2-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0b06db45-151e-44b2-b0f5-f069ad7fa1cb"}], "description": null}, {"id": "0dbf127e-3101-4f05-9d37-15ad6d2a45c1", "name": "builder-ppc64el-cpu2-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/0dbf127e-3101-4f05-9d37-15ad6d2a45c1"}], "description": null}, {"id": "102d0b57-e8d2-46c6-9be4-f452119a0280", "name": "autopkgtest-ppc64el", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/102d0b57-e8d2-46c6-9be4-f452119a0280"}], "description": null}, {"id": "1219f5f0-83f3-4d33-a3bb-1a85c6303159", "name": "builder-ppc64el-cpu128-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1219f5f0-83f3-4d33-a3bb-1a85c6303159"}], "description": null}, {"id": "1359c5a4-ee60-4855-9bcc-defd3bff7121", "name": "builder-ppc64el-cpu8-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1359c5a4-ee60-4855-9bcc-defd3bff7121"}], "description": null}, {"id": "161f21bc-11f7-4ec9-a322-04fc3e0d2a68", "name": "builder-ppc64el-cpu2-ram55-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/161f21bc-11f7-4ec9-a322-04fc3e0d2a68"}], "description": null}, {"id": "166070cd-7110-473e-a6a2-5e25aa9eeefd", "name": "builder-ppc64el-cpu4-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/166070cd-7110-473e-a6a2-5e25aa9eeefd"}], "description": null}, {"id": "16a0a259-4627-4fbd-bb9d-a3e69346467c", "name": "builder-ppc64el-cpu8-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/16a0a259-4627-4fbd-bb9d-a3e69346467c"}], "description": null}, {"id": "1c59e50a-1a67-4691-8f2c-6954cb0f83ba", "name": "builder-ppc64el-cpu4-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c59e50a-1a67-4691-8f2c-6954cb0f83ba"}], "description": null}, {"id": "1c94efa8-905a-4bff-8485-0aaf9ac47fe7", "name": "builder-ppc64el-cpu4-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/1c94efa8-905a-4bff-8485-0aaf9ac47fe7"}], "description": null}, {"id": "213c954d-26ed-4c86-9592-66384bc22c82", "name": "builder-ppc64el-cpu4-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/213c954d-26ed-4c86-9592-66384bc22c82"}], "description": null}, {"id": "219e90b4-8850-4fa4-b028-4cf7657c3264", "name": "builder-ppc64el-cpu16-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/219e90b4-8850-4fa4-b028-4cf7657c3264"}], "description": null}, {"id": "21de1f2a-7ad2-4da5-b6af-de683afb51c9", "name": "builder-ppc64el-cpu48-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/21de1f2a-7ad2-4da5-b6af-de683afb51c9"}], "description": null}, {"id": "2363173d-a2e1-4383-945f-d69f583a729a", "name": "builder-ppc64el-cpu128-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2363173d-a2e1-4383-945f-d69f583a729a"}], "description": null}, {"id": "23b7a6d6-425f-4669-961d-be7fed7725d3", "name": "builder-ppc64el-cpu2-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/23b7a6d6-425f-4669-961d-be7fed7725d3"}], "description": null}, {"id": "2464732a-3147-40fb-b375-2d275070a1f3", "name": "builder-ppc64el-cpu2-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2464732a-3147-40fb-b375-2d275070a1f3"}], "description": null}, {"id": "250ba167-175c-4548-be23-47a517fa3701", "name": "builder-ppc64el-cpu16-ram72-disk80", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/250ba167-175c-4548-be23-47a517fa3701"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/250ba167-175c-4548-be23-47a517fa3701"}], "description": null}, {"id": "27ffca72-b7d0-4d4b-96c6-de69e0f767bd", "name": "builder-ppc64el-cpu2-ram8-disk1500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/27ffca72-b7d0-4d4b-96c6-de69e0f767bd"}], "description": null}, {"id": "2b2e94dd-a11d-4eae-93df-c8cce920b95e", "name": "builder-ppc64el-cpu2-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2b2e94dd-a11d-4eae-93df-c8cce920b95e"}], "description": null}, {"id": "2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1", "name": "builder-ppc64el-cpu2-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2d842f6f-be4f-4b39-bc9e-a8dbf3233bc1"}], "description": null}, {"id": "2f626a91-24b0-44ba-afa5-2cab984ae81f", "name": "builder-ppc64el-cpu128-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/2f626a91-24b0-44ba-afa5-2cab984ae81f"}], "description": null}, {"id": "3325f74a-e433-4072-8c2c-b50052e31602", "name": "builder-ppc64el-cpu2-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3325f74a-e433-4072-8c2c-b50052e31602"}], "description": null}, {"id": "34df8936-a2ae-450a-9fea-2cdaebae5803", "name": "builder-ppc64el-cpu8-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/34df8936-a2ae-450a-9fea-2cdaebae5803"}], "description": null}, {"id": "378080cb-1d08-401a-b556-0f903a79ae2c", "name": "builder-ppc64el-cpu8-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/378080cb-1d08-401a-b556-0f903a79ae2c"}], "description": null}, {"id": "37ed4cfe-a588-40c4-8494-098403c1f0f3", "name": "builder-ppc64el-cpu4-ram12-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/37ed4cfe-a588-40c4-8494-098403c1f0f3"}], "description": null}, {"id": "3aa7a161-3310-40b9-8e89-195294d45b10", "name": "builder-ppc64el-cpu48-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3aa7a161-3310-40b9-8e89-195294d45b10"}], "description": null}, {"id": "3c30219d-30a4-4fb4-bf2e-da5602313583", "name": "builder-ppc64el-cpu2-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3c30219d-30a4-4fb4-bf2e-da5602313583"}], "description": null}, {"id": "3f533bb3-541c-4868-8883-69a5f1be7c80", "name": "builder-ppc64el-cpu16-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/3f533bb3-541c-4868-8883-69a5f1be7c80"}], "description": null}, {"id": "40ca84e0-d087-4f4b-bba2-e1823c6d3b85", "name": "builder-ppc64el-cpu8-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/40ca84e0-d087-4f4b-bba2-e1823c6d3b85"}], "description": null}, {"id": "47276443-70e8-487f-9aaa-ef1a05b07c3c", "name": "builder-ppc64el-cpu4-ram105-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/47276443-70e8-487f-9aaa-ef1a05b07c3c"}], "description": null}, {"id": "4d315fef-8774-4e68-916d-a6f08c302c0c", "name": "builder-ppc64el-cpu16-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4d315fef-8774-4e68-916d-a6f08c302c0c"}], "description": null}, {"id": "4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13", "name": "builder-ppc64el-cpu4-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/4ea8e0b3-bd6c-4df2-a3bd-2b7dea6aea13"}], "description": null}, {"id": "503bfc0d-e770-441c-90b7-7049e4bdbe7e", "name": "builder-ppc64el-cpu8-ram120-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/503bfc0d-e770-441c-90b7-7049e4bdbe7e"}], "description": null}, {"id": "510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2", "name": "builder-ppc64el-cpu4-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/510412bb-aeb3-43d8-a0f0-cdb0cf97a5f2"}], "description": null}, {"id": "53b9821c-da67-415d-990c-2f023ff61d1e", "name": "builder-ppc64el-cpu8-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/53b9821c-da67-415d-990c-2f023ff61d1e"}], "description": null}, {"id": "556a816f-2280-4167-bba4-0319a6d3aba9", "name": "builder-ppc64el-cpu8-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/556a816f-2280-4167-bba4-0319a6d3aba9"}], "description": null}, {"id": "560c2269-9192-4b41-8787-506b25ef7067", "name": "builder-ppc64el-cpu8-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/560c2269-9192-4b41-8787-506b25ef7067"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/560c2269-9192-4b41-8787-506b25ef7067"}], "description": null}, {"id": "57403612-9552-4ada-8e55-b40624c3d8f4", "name": "builder-ppc64el-cpu8-ram16-disk500", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/57403612-9552-4ada-8e55-b40624c3d8f4"}], "description": null}, {"id": "59bee3ae-a610-4f1a-b13f-a5f3400d2412", "name": "builder-ppc64el-cpu16-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/59bee3ae-a610-4f1a-b13f-a5f3400d2412"}], "description": null}, {"id": "5bf0bfb6-311e-4895-a22e-228b091cde43", "name": "builder-ppc64el-cpu24-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5bf0bfb6-311e-4895-a22e-228b091cde43"}], "description": null}, {"id": "5d1a2077-5359-4a36-922a-351690cae9cc", "name": "builder-ppc64el-cpu4-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/5d1a2077-5359-4a36-922a-351690cae9cc"}], "description": null}, {"id": "60cc1be7-1fa9-49e9-8702-419f39585f4b", "name": "builder-ppc64el-cpu8-ram16-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/60cc1be7-1fa9-49e9-8702-419f39585f4b"}], "description": null}, {"id": "62f8dfc9-c388-44d0-962f-79bb9917cd11", "name": "builder-ppc64el-cpu2-ram44-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/62f8dfc9-c388-44d0-962f-79bb9917cd11"}], "description": null}, {"id": "6679449d-f912-473e-82a2-42546b3087e2", "name": "builder-ppc64el-cpu24-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6679449d-f912-473e-82a2-42546b3087e2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6679449d-f912-473e-82a2-42546b3087e2"}], "description": null}, {"id": "694472bd-b1d9-4708-a626-5e5b3dc7e09a", "name": "builder-ppc64el-cpu4-ram8-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/694472bd-b1d9-4708-a626-5e5b3dc7e09a"}], "description": null}, {"id": "696dde5e-582a-44cf-a030-ef883bc20144", "name": "builder-ppc64el-cpu8-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/696dde5e-582a-44cf-a030-ef883bc20144"}], "description": null}, {"id": "6e611cfc-91b1-4ade-877b-32b26ee297eb", "name": "builder-ppc64el-cpu2-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e611cfc-91b1-4ade-877b-32b26ee297eb"}], "description": null}, {"id": "6e66fb56-0aa8-47f9-a877-e48efe207344", "name": "builder-ppc64el-cpu8-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/6e66fb56-0aa8-47f9-a877-e48efe207344"}], "description": null}, {"id": "70ba6763-188c-45d0-bb63-7e7930afb1aa", "name": "builder-ppc64el-cpu32-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/70ba6763-188c-45d0-bb63-7e7930afb1aa"}], "description": null}, {"id": "73ce7235-e8b9-4370-aeba-3a33729c46b3", "name": "builder-ppc64el-cpu4-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/73ce7235-e8b9-4370-aeba-3a33729c46b3"}], "description": null}, {"id": "74ef175b-e74b-4750-a5c3-abcefba98501", "name": "builder-ppc64el-cpu8-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/74ef175b-e74b-4750-a5c3-abcefba98501"}], "description": null}, {"id": "79aee276-b044-40e3-bf50-9ba4009d1400", "name": "builder-ppc64el-cpu8-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79aee276-b044-40e3-bf50-9ba4009d1400"}], "description": null}, {"id": "79e5d123-cfc1-4b78-a85b-b607091140eb", "name": "builder-ppc64el-cpu64-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/79e5d123-cfc1-4b78-a85b-b607091140eb"}], "description": null}, {"id": "7c20dd8b-310a-4013-ac86-21fdfb5ff536", "name": "builder-ppc64el-cpu8-ram128-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/7c20dd8b-310a-4013-ac86-21fdfb5ff536"}], "description": null}, {"id": "82e7fa99-f07c-46de-8f52-b92ad80a561a", "name": "builder-ppc64el-cpu2-ram16-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/82e7fa99-f07c-46de-8f52-b92ad80a561a"}], "description": null}, {"id": "85159e74-03c6-4178-bb31-e756efd11acb", "name": "builder-ppc64el-cpu16-ram8-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85159e74-03c6-4178-bb31-e756efd11acb"}], "description": null}, {"id": "85f8b76d-5d7f-4f2a-998c-cd1d11c834ac", "name": "builder-ppc64el-cpu4-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/85f8b76d-5d7f-4f2a-998c-cd1d11c834ac"}], "description": null}, {"id": "861fa361-94af-45b2-9de2-5cbe0df87b1f", "name": "builder-ppc64el-cpu4-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/861fa361-94af-45b2-9de2-5cbe0df87b1f"}], "description": null}, {"id": "88f7a27b-bd61-4d5e-a90f-391ef9d78fc4", "name": "builder-ppc64el-cpu4-ram105-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/88f7a27b-bd61-4d5e-a90f-391ef9d78fc4"}], "description": null}, {"id": "89afc706-8e2c-4ccd-b411-2d387d894209", "name": "builder-ppc64el-cpu2-ram16-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/89afc706-8e2c-4ccd-b411-2d387d894209"}], "description": null}, {"id": "905418ec-52e8-4ae7-adf1-ccef895e14c2", "name": "builder-ppc64el-cpu4-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/905418ec-52e8-4ae7-adf1-ccef895e14c2"}], "description": null}, {"id": "95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79", "name": "builder-ppc64el-cpu2-ram8-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/95b1a0b4-1ecc-4ceb-a8d6-2d3bdefbce79"}], "description": null}, {"id": "97704ac8-c97f-4f00-8e0d-85aa4e940154", "name": "builder-ppc64el-cpu2-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/97704ac8-c97f-4f00-8e0d-85aa4e940154"}], "description": null}, {"id": "9a51418a-b43e-417c-9d1d-5c706d3ca620", "name": "builder-ppc64el-cpu8-ram40-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9a51418a-b43e-417c-9d1d-5c706d3ca620"}], "description": null}, {"id": "9af1f804-8d3b-4769-b317-63a8ee73942b", "name": "builder-ppc64el-cpu4-ram8-disk200", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9af1f804-8d3b-4769-b317-63a8ee73942b"}], "description": null}, {"id": "9b15a7c7-c4c2-4841-b95e-928a217f2995", "name": "builder-ppc64el-cpu128-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9b15a7c7-c4c2-4841-b95e-928a217f2995"}], "description": null}, {"id": "9bec8a82-6767-45bd-826f-abd939beb5e3", "name": "builder-ppc64el-cpu4-ram12-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9bec8a82-6767-45bd-826f-abd939beb5e3"}], "description": null}, {"id": "9e195c66-66cf-4314-bf0c-7b24de55e52f", "name": "builder-ppc64el-cpu8-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/9e195c66-66cf-4314-bf0c-7b24de55e52f"}], "description": null}, {"id": "a37e29b1-11ac-4bd5-a015-a9ee46ed25b8", "name": "builder-ppc64el-cpu32-ram128-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a37e29b1-11ac-4bd5-a015-a9ee46ed25b8"}], "description": null}, {"id": "a8157747-dcd3-4c19-98b7-df687076ae87", "name": "builder-ppc64el-cpu4-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8157747-dcd3-4c19-98b7-df687076ae87"}], "description": null}, {"id": "a8d935bc-6ad6-4942-abdd-670d6421a03b", "name": "builder-ppc64el-cpu128-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/a8d935bc-6ad6-4942-abdd-670d6421a03b"}], "description": null}, {"id": "ac354706-0335-4e10-a755-51a75b1a962c", "name": "builder-ppc64el-cpu4-ram8-disk120", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ac354706-0335-4e10-a755-51a75b1a962c"}], "description": null}, {"id": "acb43878-9eee-4d8a-8ec0-610607dd1a28", "name": "builder-ppc64el-cpu128-ram64-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/acb43878-9eee-4d8a-8ec0-610607dd1a28"}], "description": null}, {"id": "ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9", "name": "builder-ppc64el-cpu4-ram72-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ad9b6a30-fa9a-400e-b49b-51f9a3c2eda9"}], "description": null}, {"id": "b1004655-b40b-44b4-be0b-7cf1763734a1", "name": "builder-ppc64el-cpu32-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b1004655-b40b-44b4-be0b-7cf1763734a1"}], "description": null}, {"id": "b39a607b-bb86-4b68-a455-9dfcb714130f", "name": "builder-ppc64el-cpu4-ram72-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b39a607b-bb86-4b68-a455-9dfcb714130f"}], "description": null}, {"id": "b5673781-1772-4bbf-8526-4d19486c6ac3", "name": "builder-ppc64el-cpu2-ram8-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b5673781-1772-4bbf-8526-4d19486c6ac3"}], "description": null}, {"id": "b7538b06-d418-44a1-8ec5-30cc698ac005", "name": "builder-ppc64el-cpu16-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/b7538b06-d418-44a1-8ec5-30cc698ac005"}], "description": null}, {"id": "bc3d73f7-47c5-4533-9915-5da668c18032", "name": "builder-ppc64el-cpu4-ram4-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/bc3d73f7-47c5-4533-9915-5da668c18032"}], "description": null}, {"id": "be11f608-8f5e-4e93-8b39-2e062fc23eb1", "name": "builder-ppc64el-cpu16-ram64-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/be11f608-8f5e-4e93-8b39-2e062fc23eb1"}], "description": null}, {"id": "c7e29ea5-b92f-4011-bc7c-1a81af4e8e98", "name": "builder-ppc64el-cpu8-ram16-disk1000", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/c7e29ea5-b92f-4011-bc7c-1a81af4e8e98"}], "description": null}, {"id": "ccda5e60-c156-4367-aeaf-25d9cd9fc4d8", "name": "builder-ppc64el-cpu4-ram24-disk68", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/ccda5e60-c156-4367-aeaf-25d9cd9fc4d8"}], "description": null}, {"id": "cdc72dd8-3a8d-4f6f-997b-60017a100228", "name": "builder-ppc64el-cpu4-ram40-disk188", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cdc72dd8-3a8d-4f6f-997b-60017a100228"}], "description": null}, {"id": "cedd22e7-22ba-425e-8ace-5a3607e63239", "name": "builder-ppc64el-cpu16-ram4-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cedd22e7-22ba-425e-8ace-5a3607e63239"}], "description": null}, {"id": "cffc3023-932a-439e-8bb7-faf8f6d6c42a", "name": "builder-ppc64el-cpu16-ram128-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/cffc3023-932a-439e-8bb7-faf8f6d6c42a"}], "description": null}, {"id": "d0030e34-8145-4944-a92d-ba1e454c6126", "name": "builder-ppc64el-cpu64-ram256-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d0030e34-8145-4944-a92d-ba1e454c6126"}], "description": null}, {"id": "d24cccba-50db-4ebf-8e12-4f601202a489", "name": "builder-ppc64el-cpu2-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d24cccba-50db-4ebf-8e12-4f601202a489"}], "description": null}, {"id": "d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6", "name": "builder-ppc64el-cpu4-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d3801d0d-ae1d-474a-be3f-c3b4e0d75ce6"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d3801d0d-ae1d-474aautopkgtest [09:39:35]: testbed dpkg architecture: ppc64el 1528s autopkgtest [09:39:35]: testbed apt version: 2.9.8 1528s autopkgtest [09:39:35]: @@@@@@@@@@@@@@@@@@@@ test bed setup 1529s Get:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease [73.9 kB] 1529s Get:2 http://ftpmaster.internal/ubuntu plucky-proposed/restricted Sources [7016 B] 1529s Get:3 http://ftpmaster.internal/ubuntu plucky-proposed/universe Sources [1024 kB] 1529s Get:4 http://ftpmaster.internal/ubuntu plucky-proposed/main Sources [94.0 kB] 1529s Get:5 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse Sources [15.5 kB] 1529s Get:6 http://ftpmaster.internal/ubuntu plucky-proposed/main ppc64el Packages [154 kB] 1529s Get:7 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el Packages [782 kB] 1529s Get:8 http://ftpmaster.internal/ubuntu plucky-proposed/multiverse ppc64el Packages [8932 B] 1530s Fetched 2160 kB in 1s (2233 kB/s) 1530s Reading package lists... 1532s Reading package lists... 1532s Building dependency tree... 1532s Reading state information... 1532s Calculating upgrade... 1532s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1532s Reading package lists... 1532s Building dependency tree... 1532s Reading state information... 1532s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1533s Hit:1 http://ftpmaster.internal/ubuntu plucky-proposed InRelease 1533s Hit:2 http://ftpmaster.internal/ubuntu plucky InRelease 1533s Hit:3 http://ftpmaster.internal/ubuntu plucky-updates InRelease 1533s Hit:4 http://ftpmaster.internal/ubuntu plucky-security InRelease 1534s Reading package lists... 1534s Reading package lists... 1534s Building dependency tree... 1534s Reading state information... 1534s Calculating upgrade... 1534s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1534s Reading package lists... 1535s Building dependency tree... 1535s Reading state information... 1535s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1538s Reading package lists... 1539s Building dependency tree... 1539s Reading state information... 1539s Starting pkgProblemResolver with broken count: 0 1539s Starting 2 pkgProblemResolver with broken count: 0 1539s Done 1539s The following additional packages will be installed: 1539s autodep8 dctrl-tools javascript-common libautovivification-perl 1539s libb-hooks-endofscope-perl libb-hooks-op-check-perl libclass-inspector-perl 1539s libclass-method-modifiers-perl libclass-xsaccessor-perl 1539s libcpanel-json-xs-perl libdata-optlist-perl libdevel-callchecker-perl 1539s libdynaloader-functions-perl libexporter-tiny-perl 1539s libfeature-compat-try-perl libfile-sharedir-perl 1539s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 1539s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 1539s libjson-schema-modern-perl libmodule-implementation-perl 1539s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 1539s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 1539s libparams-util-perl libparams-validate-perl libpath-tiny-perl 1539s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 1539s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 1539s libsub-install-perl libsub-name-perl libsub-quote-perl 1539s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 1539s libvariable-magic-perl libxs-parse-keyword-perl pkg-perl-autopkgtest 1539s Suggested packages: 1539s debtags apache2 | lighttpd | httpd bootstrap-icons libjs-bootstrap5-doc 1539s libscalar-number-perl libbareword-filehandles-perl libindirect-perl 1539s libmultidimensional-perl libxstring-perl libdevel-lexalias-perl 1539s libdevel-stacktrace-perl 1539s Recommended packages: 1539s node-jquery libdata-validate-domain-perl libdatetime-format-rfc3339-perl 1539s libemail-address-xs-perl libnet-idn-encode-perl libref-util-xs-perl 1539s libsereal-perl libtime-moment-perl libtype-tiny-xs-perl libev-perl 1539s libfuture-asyncawait-perl libio-socket-socks-perl libio-socket-ssl-perl 1539s libmojo-server-fastcgi-perl libpackage-stash-xs-perl libunicode-utf8-perl 1539s libreadonly-perl 1539s The following NEW packages will be installed: 1539s autodep8 autopkgtest-satdep dctrl-tools javascript-common 1539s libautovivification-perl libb-hooks-endofscope-perl libb-hooks-op-check-perl 1539s libclass-inspector-perl libclass-method-modifiers-perl 1539s libclass-xsaccessor-perl libcpanel-json-xs-perl libdata-optlist-perl 1539s libdevel-callchecker-perl libdynaloader-functions-perl libexporter-tiny-perl 1539s libfeature-compat-try-perl libfile-sharedir-perl 1539s libgetopt-long-descriptive-perl libimport-into-perl libio-stringy-perl 1539s libjs-bootstrap5 libjs-highlight.js libjs-popper.js 1539s libjson-schema-modern-perl libmodule-implementation-perl 1539s libmodule-runtime-perl libmojolicious-perl libmoo-perl libmoox-typetiny-perl 1539s libnamespace-clean-perl libpackage-stash-perl libparams-classify-perl 1539s libparams-util-perl libparams-validate-perl libpath-tiny-perl 1539s libref-util-perl librole-tiny-perl libsafe-isa-perl libstrictures-perl 1539s libsub-exporter-perl libsub-exporter-progressive-perl libsub-identify-perl 1539s libsub-install-perl libsub-name-perl libsub-quote-perl 1539s libsyntax-keyword-try-perl libtry-tiny-perl libtype-tiny-perl 1539s libvariable-magic-perl libxs-parse-keyword-perl pkg-perl-autopkgtest 1539s 0 upgraded, 51 newly installed, 0 to remove and 0 not upgraded. 1539s Need to get 3096 kB/3096 kB of archives. 1539s After this operation, 14.3 MB of additional disk space will be used. 1539s Get:1 /tmp/autopkgtest.KTsMu3/2-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [728 B] 1539s Get:2 http://ftpmaster.internal/ubuntu plucky/main ppc64el dctrl-tools ppc64el 2.24-3build3 [109 kB] 1539s Get:3 http://ftpmaster.internal/ubuntu plucky/main ppc64el autodep8 all 0.28+nmu1ubuntu1 [13.7 kB] 1539s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el javascript-common all 11+nmu1 [5936 B] 1540s Get:5 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libautovivification-perl ppc64el 0.18-2build5 [23.7 kB] 1540s Get:6 http://ftpmaster.internal/ubuntu plucky/main ppc64el libb-hooks-op-check-perl ppc64el 0.22-3build2 [9884 B] 1540s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdynaloader-functions-perl all 0.004-1 [11.4 kB] 1540s Get:8 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdevel-callchecker-perl ppc64el 0.009-1build1 [14.1 kB] 1540s Get:9 http://ftpmaster.internal/ubuntu plucky/main ppc64el libparams-classify-perl ppc64el 0.015-2build6 [22.2 kB] 1540s Get:10 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmodule-runtime-perl all 0.016-2 [16.4 kB] 1540s Get:11 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtry-tiny-perl all 0.32-1 [21.2 kB] 1540s Get:12 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmodule-implementation-perl all 0.09-2 [12.0 kB] 1540s Get:13 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-exporter-progressive-perl all 0.001013-3 [6718 B] 1540s Get:14 http://ftpmaster.internal/ubuntu plucky/main ppc64el libvariable-magic-perl ppc64el 0.64-1build1 [37.2 kB] 1540s Get:15 http://ftpmaster.internal/ubuntu plucky/main ppc64el libb-hooks-endofscope-perl all 0.28-1 [15.8 kB] 1540s Get:16 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-inspector-perl all 1.36-3 [15.4 kB] 1540s Get:17 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-method-modifiers-perl all 2.15-1 [16.1 kB] 1540s Get:18 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-xsaccessor-perl ppc64el 1.19-4build5 [35.1 kB] 1540s Get:19 http://ftpmaster.internal/ubuntu plucky/main ppc64el libcpanel-json-xs-perl ppc64el 4.38-1build1 [119 kB] 1540s Get:20 http://ftpmaster.internal/ubuntu plucky/main ppc64el libparams-util-perl ppc64el 1.102-3build1 [21.3 kB] 1540s Get:21 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-install-perl all 0.929-1 [9764 B] 1540s Get:22 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdata-optlist-perl all 0.114-1 [9708 B] 1540s Get:23 http://ftpmaster.internal/ubuntu plucky/main ppc64el libexporter-tiny-perl all 1.006002-1 [36.8 kB] 1540s Get:24 http://ftpmaster.internal/ubuntu plucky/main ppc64el libfile-sharedir-perl all 1.118-3 [14.0 kB] 1540s Get:25 http://ftpmaster.internal/ubuntu plucky/main ppc64el libxs-parse-keyword-perl ppc64el 0.46-1 [63.8 kB] 1540s Get:26 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsyntax-keyword-try-perl ppc64el 0.30-1 [26.3 kB] 1540s Get:27 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libfeature-compat-try-perl all 0.05-1 [9998 B] 1540s Get:28 http://ftpmaster.internal/ubuntu plucky/main ppc64el libio-stringy-perl all 2.113-2 [45.3 kB] 1540s Get:29 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libparams-validate-perl ppc64el 1.31-2build4 [55.4 kB] 1540s Get:30 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-exporter-perl all 0.990-1 [49.0 kB] 1540s Get:31 http://ftpmaster.internal/ubuntu plucky-proposed/universe ppc64el libgetopt-long-descriptive-perl all 0.115-1 [24.9 kB] 1540s Get:32 http://ftpmaster.internal/ubuntu plucky/main ppc64el libimport-into-perl all 1.002005-2 [10.7 kB] 1540s Get:33 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-popper.js all 1.16.1+ds-6 [54.1 kB] 1540s Get:34 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-bootstrap5 all 5.3.3+dfsg-1 [309 kB] 1540s Get:35 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjs-highlight.js all 9.18.5+dfsg1-2 [385 kB] 1540s Get:36 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmojolicious-perl all 9.38+dfsg-1 [760 kB] 1540s Get:37 http://ftpmaster.internal/ubuntu plucky/main ppc64el librole-tiny-perl all 2.002004-1 [16.3 kB] 1540s Get:38 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-quote-perl all 2.006008-1ubuntu1 [20.7 kB] 1540s Get:39 http://ftpmaster.internal/ubuntu plucky/main ppc64el libmoo-perl all 2.005005-1 [47.4 kB] 1540s Get:40 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtype-tiny-perl all 2.004000-1 [354 kB] 1540s Get:41 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmoox-typetiny-perl all 0.002003-4 [5930 B] 1540s Get:42 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpackage-stash-perl all 0.40-1 [19.5 kB] 1540s Get:43 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-identify-perl ppc64el 0.14-3build4 [10.1 kB] 1540s Get:44 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsub-name-perl ppc64el 0.27-1build4 [11.0 kB] 1540s Get:45 http://ftpmaster.internal/ubuntu plucky/main ppc64el libnamespace-clean-perl all 0.27-2 [14.0 kB] 1540s Get:46 http://ftpmaster.internal/ubuntu plucky/main ppc64el libpath-tiny-perl all 0.146-1 [47.5 kB] 1540s Get:47 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libref-util-perl all 0.204-2 [15.1 kB] 1540s Get:48 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libsafe-isa-perl all 1.000010-1 [7684 B] 1540s Get:49 http://ftpmaster.internal/ubuntu plucky/main ppc64el libstrictures-perl all 2.000006-1 [16.3 kB] 1540s Get:50 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libjson-schema-modern-perl all 0.593-1 [100 kB] 1540s Get:51 http://ftpmaster.internal/ubuntu plucky/universe ppc64el pkg-perl-autopkgtest all 0.80 [18.7 kB] 1540s Fetched 3096 kB in 1s (3568 kB/s) 1540s Selecting previously unselected package dctrl-tools. 1540s (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 ... 73808 files and directories currently installed.) 1540s Preparing to unpack .../00-dctrl-tools_2.24-3build3_ppc64el.deb ... 1540s Unpacking dctrl-tools (2.24-3build3) ... 1540s Selecting previously unselected package autodep8. 1540s Preparing to unpack .../01-autodep8_0.28+nmu1ubuntu1_all.deb ... 1540s Unpacking autodep8 (0.28+nmu1ubuntu1) ... 1541s Selecting previously unselected package javascript-common. 1541s Preparing to unpack .../02-javascript-common_11+nmu1_all.deb ... 1541s Unpacking javascript-common (11+nmu1) ... 1541s Selecting previously unselected package libautovivification-perl:ppc64el. 1541s Preparing to unpack .../03-libautovivification-perl_0.18-2build5_ppc64el.deb ... 1541s Unpacking libautovivification-perl:ppc64el (0.18-2build5) ... 1541s Selecting previously unselected package libb-hooks-op-check-perl:ppc64el. 1541s Preparing to unpack .../04-libb-hooks-op-check-perl_0.22-3build2_ppc64el.deb ... 1541s Unpacking libb-hooks-op-check-perl:ppc64el (0.22-3build2) ... 1541s Selecting previously unselected package libdynaloader-functions-perl. 1541s Preparing to unpack .../05-libdynaloader-functions-perl_0.004-1_all.deb ... 1541s Unpacking libdynaloader-functions-perl (0.004-1) ... 1541s Selecting previously unselected package libdevel-callchecker-perl:ppc64el. 1541s Preparing to unpack .../06-libdevel-callchecker-perl_0.009-1build1_ppc64el.deb ... 1541s Unpacking libdevel-callchecker-perl:ppc64el (0.009-1build1) ... 1541s Selecting previously unselected package libparams-classify-perl:ppc64el. 1541s Preparing to unpack .../07-libparams-classify-perl_0.015-2build6_ppc64el.deb ... 1541s Unpacking libparams-classify-perl:ppc64el (0.015-2build6) ... 1541s Selecting previously unselected package libmodule-runtime-perl. 1541s Preparing to unpack .../08-libmodule-runtime-perl_0.016-2_all.deb ... 1541s Unpacking libmodule-runtime-perl (0.016-2) ... 1541s Selecting previously unselected package libtry-tiny-perl. 1541s Preparing to unpack .../09-libtry-tiny-perl_0.32-1_all.deb ... 1541s Unpacking libtry-tiny-perl (0.32-1) ... 1541s Selecting previously unselected package libmodule-implementation-perl. 1541s Preparing to unpack .../10-libmodule-implementation-perl_0.09-2_all.deb ... 1541s Unpacking libmodule-implementation-perl (0.09-2) ... 1541s Selecting previously unselected package libsub-exporter-progressive-perl. 1541s Preparing to unpack .../11-libsub-exporter-progressive-perl_0.001013-3_all.deb ... 1541s Unpacking libsub-exporter-progressive-perl (0.001013-3) ... 1541s Selecting previously unselected package libvariable-magic-perl. 1541s Preparing to unpack .../12-libvariable-magic-perl_0.64-1build1_ppc64el.deb ... 1541s Unpacking libvariable-magic-perl (0.64-1build1) ... 1541s Selecting previously unselected package libb-hooks-endofscope-perl. 1541s Preparing to unpack .../13-libb-hooks-endofscope-perl_0.28-1_all.deb ... 1541s Unpacking libb-hooks-endofscope-perl (0.28-1) ... 1541s Selecting previously unselected package libclass-inspector-perl. 1541s Preparing to unpack .../14-libclass-inspector-perl_1.36-3_all.deb ... 1541s Unpacking libclass-inspector-perl (1.36-3) ... 1541s Selecting previously unselected package libclass-method-modifiers-perl. 1541s Preparing to unpack .../15-libclass-method-modifiers-perl_2.15-1_all.deb ... 1541s Unpacking libclass-method-modifiers-perl (2.15-1) ... 1541s Selecting previously unselected package libclass-xsaccessor-perl. 1541s Preparing to unpack .../16-libclass-xsaccessor-perl_1.19-4build5_ppc64el.deb ... 1541s Unpacking libclass-xsaccessor-perl (1.19-4build5) ... 1541s Selecting previously unselected package libcpanel-json-xs-perl:ppc64el. 1541s Preparing to unpack .../17-libcpanel-json-xs-perl_4.38-1build1_ppc64el.deb ... 1541s Unpacking libcpanel-json-xs-perl:ppc64el (4.38-1build1) ... 1541s Selecting previously unselected package libparams-util-perl. 1541s Preparing to unpack .../18-libparams-util-perl_1.102-3build1_ppc64el.deb ... 1541s Unpacking libparams-util-perl (1.102-3build1) ... 1541s Selecting previously unselected package libsub-install-perl. 1541s Preparing to unpack .../19-libsub-install-perl_0.929-1_all.deb ... 1541s Unpacking libsub-install-perl (0.929-1) ... 1541s Selecting previously unselected package libdata-optlist-perl. 1541s Preparing to unpack .../20-libdata-optlist-perl_0.114-1_all.deb ... 1541s Unpacking libdata-optlist-perl (0.114-1) ... 1541s Selecting previously unselected package libexporter-tiny-perl. 1541s Preparing to unpack .../21-libexporter-tiny-perl_1.006002-1_all.deb ... 1541s Unpacking libexporter-tiny-perl (1.006002-1) ... 1541s Selecting previously unselected package libfile-sharedir-perl. 1541s Preparing to unpack .../22-libfile-sharedir-perl_1.118-3_all.deb ... 1541s Unpacking libfile-sharedir-perl (1.118-3) ... 1541s Selecting previously unselected package libxs-parse-keyword-perl. 1541s Preparing to unpack .../23-libxs-parse-keyword-perl_0.46-1_ppc64el.deb ... 1541s Unpacking libxs-parse-keyword-perl (0.46-1) ... 1541s Selecting previously unselected package libsyntax-keyword-try-perl. 1541s Preparing to unpack .../24-libsyntax-keyword-try-perl_0.30-1_ppc64el.deb ... 1541s Unpacking libsyntax-keyword-try-perl (0.30-1) ... 1541s Selecting previously unselected package libfeature-compat-try-perl. 1541s Preparing to unpack .../25-libfeature-compat-try-perl_0.05-1_all.deb ... 1541s Unpacking libfeature-compat-try-perl (0.05-1) ... 1541s Selecting previously unselected package libio-stringy-perl. 1541s Preparing to unpack .../26-libio-stringy-perl_2.113-2_all.deb ... 1541s Unpacking libio-stringy-perl (2.113-2) ... 1541s Selecting previously unselected package libparams-validate-perl:ppc64el. 1541s Preparing to unpack .../27-libparams-validate-perl_1.31-2build4_ppc64el.deb ... 1541s Unpacking libparams-validate-perl:ppc64el (1.31-2build4) ... 1541s Selecting previously unselected package libsub-exporter-perl. 1541s Preparing to unpack .../28-libsub-exporter-perl_0.990-1_all.deb ... 1541s Unpacking libsub-exporter-perl (0.990-1) ... 1541s Selecting previously unselected package libgetopt-long-descriptive-perl. 1541s Preparing to unpack .../29-libgetopt-long-descriptive-perl_0.115-1_all.deb ... 1541s Unpacking libgetopt-long-descriptive-perl (0.115-1) ... 1541s Selecting previously unselected package libimport-into-perl. 1541s Preparing to unpack .../30-libimport-into-perl_1.002005-2_all.deb ... 1541s Unpacking libimport-into-perl (1.002005-2) ... 1541s Selecting previously unselected package libjs-popper.js. 1541s Preparing to unpack .../31-libjs-popper.js_1.16.1+ds-6_all.deb ... 1541s Unpacking libjs-popper.js (1.16.1+ds-6) ... 1541s Selecting previously unselected package libjs-bootstrap5. 1541s Preparing to unpack .../32-libjs-bootstrap5_5.3.3+dfsg-1_all.deb ... 1541s Unpacking libjs-bootstrap5 (5.3.3+dfsg-1) ... 1541s Selecting previously unselected package libjs-highlight.js. 1541s Preparing to unpack .../33-libjs-highlight.js_9.18.5+dfsg1-2_all.deb ... 1541s Unpacking libjs-highlight.js (9.18.5+dfsg1-2) ... 1541s Selecting previously unselected package libmojolicious-perl. 1541s Preparing to unpack .../34-libmojolicious-perl_9.38+dfsg-1_all.deb ... 1541s Unpacking libmojolicious-perl (9.38+dfsg-1) ... 1541s Selecting previously unselected package librole-tiny-perl. 1541s Preparing to unpack .../35-librole-tiny-perl_2.002004-1_all.deb ... 1541s Unpacking librole-tiny-perl (2.002004-1) ... 1541s Selecting previously unselected package libsub-quote-perl. 1541s Preparing to unpack .../36-libsub-quote-perl_2.006008-1ubuntu1_all.deb ... 1541s Unpacking libsub-quote-perl (2.006008-1ubuntu1) ... 1541s Selecting previously unselected package libmoo-perl. 1541s Preparing to unpack .../37-libmoo-perl_2.005005-1_all.deb ... 1541s Unpacking libmoo-perl (2.005005-1) ... 1541s Selecting previously unselected package libtype-tiny-perl. 1541s Preparing to unpack .../38-libtype-tiny-perl_2.004000-1_all.deb ... 1541s Unpacking libtype-tiny-perl (2.004000-1) ... 1541s Selecting previously unselected package libmoox-typetiny-perl. 1541s Preparing to unpack .../39-libmoox-typetiny-perl_0.002003-4_all.deb ... 1541s Unpacking libmoox-typetiny-perl (0.002003-4) ... 1541s Selecting previously unselected package libpackage-stash-perl. 1541s Preparing to unpack .../40-libpackage-stash-perl_0.40-1_all.deb ... 1541s Unpacking libpackage-stash-perl (0.40-1) ... 1541s Selecting previously unselected package libsub-identify-perl. 1541s Preparing to unpack .../41-libsub-identify-perl_0.14-3build4_ppc64el.deb ... 1541s Unpacking libsub-identify-perl (0.14-3build4) ... 1541s Selecting previously unselected package libsub-name-perl:ppc64el. 1541s Preparing to unpack .../42-libsub-name-perl_0.27-1build4_ppc64el.deb ... 1541s Unpacking libsub-name-perl:ppc64el (0.27-1build4) ... 1541s Selecting previously unselected package libnamespace-clean-perl. 1541s Preparing to unpack .../43-libnamespace-clean-perl_0.27-2_all.deb ... 1541s Unpacking libnamespace-clean-perl (0.27-2) ... 1541s Selecting previously unselected package libpath-tiny-perl. 1541s Preparing to unpack .../44-libpath-tiny-perl_0.146-1_all.deb ... 1541s Unpacking libpath-tiny-perl (0.146-1) ... 1541s Selecting previously unselected package libref-util-perl. 1541s Preparing to unpack .../45-libref-util-perl_0.204-2_all.deb ... 1541s Unpacking libref-util-perl (0.204-2) ... 1541s Selecting previously unselected package libsafe-isa-perl. 1541s Preparing to unpack .../46-libsafe-isa-perl_1.000010-1_all.deb ... 1541s Unpacking libsafe-isa-perl (1.000010-1) ... 1541s Selecting previously unselected package libstrictures-perl. 1541s Preparing to unpack .../47-libstrictures-perl_2.000006-1_all.deb ... 1541s Unpacking libstrictures-perl (2.000006-1) ... 1541s Selecting previously unselected package libjson-schema-modern-perl. 1541s Preparing to unpack .../48-libjson-schema-modern-perl_0.593-1_all.deb ... 1541s Unpacking libjson-schema-modern-perl (0.593-1) ... 1541s Selecting previously unselected package pkg-perl-autopkgtest. 1541s Preparing to unpack .../49-pkg-perl-autopkgtest_0.80_all.deb ... 1541s Unpacking pkg-perl-autopkgtest (0.80) ... 1541s Selecting previously unselected package autopkgtest-satdep. 1541s Preparing to unpack .../50-2-autopkgtest-satdep.deb ... 1541s Unpacking autopkgtest-satdep (0) ... 1541s Setting up javascript-common (11+nmu1) ... 1541s Setting up libsafe-isa-perl (1.000010-1) ... 1541s Setting up libclass-inspector-perl (1.36-3) ... 1541s Setting up libdynaloader-functions-perl (0.004-1) ... 1541s Setting up libclass-method-modifiers-perl (2.15-1) ... 1541s Setting up libjs-popper.js (1.16.1+ds-6) ... 1541s Setting up libsub-identify-perl (0.14-3build4) ... 1541s Setting up libcpanel-json-xs-perl:ppc64el (4.38-1build1) ... 1541s Setting up libio-stringy-perl (2.113-2) ... 1541s Setting up libtry-tiny-perl (0.32-1) ... 1541s Setting up libsub-install-perl (0.929-1) ... 1541s Setting up libautovivification-perl:ppc64el (0.18-2build5) ... 1541s Setting up libref-util-perl (0.204-2) ... 1541s Setting up libvariable-magic-perl (0.64-1build1) ... 1541s Setting up libb-hooks-op-check-perl:ppc64el (0.22-3build2) ... 1541s Setting up libparams-util-perl (1.102-3build1) ... 1541s Setting up libsub-exporter-progressive-perl (0.001013-3) ... 1541s Setting up libsub-name-perl:ppc64el (0.27-1build4) ... 1541s Setting up libjs-highlight.js (9.18.5+dfsg1-2) ... 1541s Setting up libpath-tiny-perl (0.146-1) ... 1541s Setting up librole-tiny-perl (2.002004-1) ... 1541s Setting up libfile-sharedir-perl (1.118-3) ... 1541s Setting up libstrictures-perl (2.000006-1) ... 1541s Setting up libsub-quote-perl (2.006008-1ubuntu1) ... 1541s Setting up libclass-xsaccessor-perl (1.19-4build5) ... 1541s Setting up libexporter-tiny-perl (1.006002-1) ... 1541s Setting up libjs-bootstrap5 (5.3.3+dfsg-1) ... 1541s Setting up dctrl-tools (2.24-3build3) ... 1541s Setting up autodep8 (0.28+nmu1ubuntu1) ... 1541s Setting up libmojolicious-perl (9.38+dfsg-1) ... 1541s Setting up libtype-tiny-perl (2.004000-1) ... 1541s Setting up libdevel-callchecker-perl:ppc64el (0.009-1build1) ... 1541s Setting up libxs-parse-keyword-perl (0.46-1) ... 1541s Setting up libdata-optlist-perl (0.114-1) ... 1541s Setting up pkg-perl-autopkgtest (0.80) ... 1541s Setting up libsyntax-keyword-try-perl (0.30-1) ... 1541s Setting up libsub-exporter-perl (0.990-1) ... 1541s Setting up libfeature-compat-try-perl (0.05-1) ... 1541s Setting up libparams-classify-perl:ppc64el (0.015-2build6) ... 1541s Setting up libmodule-runtime-perl (0.016-2) ... 1541s Setting up libmodule-implementation-perl (0.09-2) ... 1541s Setting up libpackage-stash-perl (0.40-1) ... 1541s Setting up libimport-into-perl (1.002005-2) ... 1541s Setting up libmoo-perl (2.005005-1) ... 1541s Setting up libmoox-typetiny-perl (0.002003-4) ... 1541s Setting up libparams-validate-perl:ppc64el (1.31-2build4) ... 1541s Setting up libb-hooks-endofscope-perl (0.28-1) ... 1541s Setting up libnamespace-clean-perl (0.27-2) ... 1541s Setting up libgetopt-long-descriptive-perl (0.115-1) ... 1541s Setting up libjson-schema-modern-perl (0.593-1) ... 1541s Setting up autopkgtest-satdep (0) ... 1541s Processing triggers for man-db (2.13.0-1) ... 1546s (Reading database ... 75261 files and directories currently installed.) 1546s Removing autopkgtest-satdep (0) ... 1548s autopkgtest [09:39:55]: test autodep8-perl: /usr/share/pkg-perl-autopkgtest/runner runtime-deps 1548s autopkgtest [09:39:55]: test autodep8-perl: [----------------------- 1549s /usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t .. 1549s 1..4 1549s ok 1 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 1549s ok 2 - /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 1549s ok 3 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 exited successfully 1549s ok 4 - env PERL_DL_NONLAZY=1 /usr/bin/perl -w -M"JSON::Schema::Modern" -e 1 2>&1 produced no (non-whitelisted) output 1549s ok 1549s All tests successful. 1549s Files=1, Tests=4, 1 wallclock secs ( 0.02 usr 0.01 sys + 0.81 cusr 0.04 csys = 0.88 CPU) 1549s Result: PASS 1549s autopkgtest [09:39:56]: test autodep8-perl: -----------------------] 1550s autopkgtest [09:39:57]: test autodep8-perl: - - - - - - - - - - results - - - - - - - - - - 1550s autodep8-perl PASS (superficial) 1550s autopkgtest [09:39:57]: test autodep8-perl-recommends: preparing testbed 1551s Reading package lists... 1551s Building dependency tree... 1551s Reading state information... 1551s Starting pkgProblemResolver with broken count: 0 1551s Starting 2 pkgProblemResolver with broken count: 0 1551s Done 1552s The following additional packages will be installed: 1552s libalgorithm-c3-perl libclass-c3-perl libclass-data-inheritable-perl 1552s libclass-singleton-perl libdata-validate-domain-perl 1552s libdatetime-format-rfc3339-perl libdatetime-locale-perl libdatetime-perl 1552s libdatetime-timezone-perl libdevel-stacktrace-perl libemail-address-xs-perl 1552s libeval-closure-perl libexception-class-perl libmro-compat-perl 1552s libnamespace-autoclean-perl libnet-domain-tld-perl libnet-idn-encode-perl 1552s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 1552s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 1552s libtype-tiny-xs-perl libxstring-perl 1552s Suggested packages: 1552s libtest-fatal-perl 1552s Recommended packages: 1552s libclass-c3-xs-perl libdevel-lexalias-perl 1552s The following NEW packages will be installed: 1552s autopkgtest-satdep libalgorithm-c3-perl libclass-c3-perl 1552s libclass-data-inheritable-perl libclass-singleton-perl 1552s libdata-validate-domain-perl libdatetime-format-rfc3339-perl 1552s libdatetime-locale-perl libdatetime-perl libdatetime-timezone-perl 1552s libdevel-stacktrace-perl libemail-address-xs-perl libeval-closure-perl 1552s libexception-class-perl libmro-compat-perl libnamespace-autoclean-perl 1552s libnet-domain-tld-perl libnet-idn-encode-perl 1552s libparams-validationcompiler-perl libref-util-xs-perl libsereal-decoder-perl 1552s libsereal-encoder-perl libsereal-perl libspecio-perl libtime-moment-perl 1552s libtype-tiny-xs-perl libxstring-perl 1552s 0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded. 1552s Need to get 4393 kB/4394 kB of archives. 1552s After this operation, 34.7 MB of additional disk space will be used. 1552s Get:1 /tmp/autopkgtest.KTsMu3/3-autopkgtest-satdep.deb autopkgtest-satdep ppc64el 0 [824 B] 1552s Get:2 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libalgorithm-c3-perl all 0.11-2 [10.2 kB] 1552s Get:3 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libclass-c3-perl all 0.35-2 [18.4 kB] 1552s Get:4 http://ftpmaster.internal/ubuntu plucky/main ppc64el libclass-data-inheritable-perl all 0.10-1 [8038 B] 1552s Get:5 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libclass-singleton-perl all 1.6-2 [11.5 kB] 1552s Get:6 http://ftpmaster.internal/ubuntu plucky/main ppc64el libnet-domain-tld-perl all 1.75-4 [29.0 kB] 1552s Get:7 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdata-validate-domain-perl all 0.15-1 [10.4 kB] 1552s Get:8 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libnamespace-autoclean-perl all 0.31-1 [11.9 kB] 1552s Get:9 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libeval-closure-perl all 0.14-3 [10.1 kB] 1552s Get:10 http://ftpmaster.internal/ubuntu plucky/main ppc64el libdevel-stacktrace-perl all 2.0500-1 [22.1 kB] 1552s Get:11 http://ftpmaster.internal/ubuntu plucky/main ppc64el libexception-class-perl all 1.45-1 [28.6 kB] 1552s Get:12 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libparams-validationcompiler-perl all 0.31-1 [28.3 kB] 1552s Get:13 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libmro-compat-perl all 0.15-2 [10.1 kB] 1552s Get:14 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libxstring-perl ppc64el 0.005-2build4 [8448 B] 1552s Get:15 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libspecio-perl all 0.48-1 [137 kB] 1552s Get:16 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-locale-perl all 1:1.41-1 [3193 kB] 1552s Get:17 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-timezone-perl all 1:2.63-2+2024b [259 kB] 1552s Get:18 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-perl ppc64el 2:1.65-1build3 [96.9 kB] 1552s Get:19 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libdatetime-format-rfc3339-perl all 1.8.0-1 [8156 B] 1552s Get:20 http://ftpmaster.internal/ubuntu plucky/main ppc64el libemail-address-xs-perl ppc64el 1.05-1build5 [33.6 kB] 1552s Get:21 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libnet-idn-encode-perl ppc64el 2.500-5build1 [85.1 kB] 1552s Get:22 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libref-util-xs-perl ppc64el 0.117-2build5 [13.8 kB] 1552s Get:23 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsereal-decoder-perl ppc64el 5.004+ds-1build4 [126 kB] 1552s Get:24 http://ftpmaster.internal/ubuntu plucky/main ppc64el libsereal-encoder-perl ppc64el 5.004+ds-1build4 [120 kB] 1552s Get:25 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libsereal-perl all 5.004-1 [8770 B] 1553s Get:26 http://ftpmaster.internal/ubuntu plucky/main ppc64el libtime-moment-perl ppc64el 0.44-2build5 [76.5 kB] 1553s Get:27 http://ftpmaster.internal/ubuntu plucky/universe ppc64el libtype-tiny-xs-perl ppc64el 0.025-2build1 [27.3 kB] 1553s Fetched 4393 kB in 1s (5268 kB/s) 1553s Selecting previously unselected package libalgorithm-c3-perl. 1553s (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 ... 75261 files and directories currently installed.) 1553s Preparing to unpack .../00-libalgorithm-c3-perl_0.11-2_all.deb ... 1553s Unpacking libalgorithm-c3-perl (0.11-2) ... 1553s Selecting previously unselected package libclass-c3-perl. 1553s Preparing to unpack .../01-libclass-c3-perl_0.35-2_all.deb ... 1553s Unpacking libclass-c3-perl (0.35-2) ... 1553s Selecting previously unselected package libclass-data-inheritable-perl. 1553s Preparing to unpack .../02-libclass-data-inheritable-perl_0.10-1_all.deb ... 1553s Unpacking libclass-data-inheritable-perl (0.10-1) ... 1553s Selecting previously unselected package libclass-singleton-perl. 1553s Preparing to unpack .../03-libclass-singleton-perl_1.6-2_all.deb ... 1553s Unpacking libclass-singleton-perl (1.6-2) ... 1553s Selecting previously unselected package libnet-domain-tld-perl. 1553s Preparing to unpack .../04-libnet-domain-tld-perl_1.75-4_all.deb ... 1553s Unpacking libnet-domain-tld-perl (1.75-4) ... 1553s Selecting previously unselected package libdata-validate-domain-perl. 1553s Preparing to unpack .../05-libdata-validate-domain-perl_0.15-1_all.deb ... 1553s Unpacking libdata-validate-domain-perl (0.15-1) ... 1553s Selecting previously unselected package libnamespace-autoclean-perl. 1553s Preparing to unpack .../06-libnamespace-autoclean-perl_0.31-1_all.deb ... 1553s Unpacking libnamespace-autoclean-perl (0.31-1) ... 1553s Selecting previously unselected package libeval-closure-perl. 1553s Preparing to unpack .../07-libeval-closure-perl_0.14-3_all.deb ... 1553s Unpacking libeval-closure-perl (0.14-3) ... 1553s Selecting previously unselected package libdevel-stacktrace-perl. 1553s Preparing to unpack .../08-libdevel-stacktrace-perl_2.0500-1_all.deb ... 1553s Unpacking libdevel-stacktrace-perl (2.0500-1) ... 1553s Selecting previously unselected package libexception-class-perl. 1553s Preparing to unpack .../09-libexception-class-perl_1.45-1_all.deb ... 1553s Unpacking libexception-class-perl (1.45-1) ... 1553s Selecting previously unselected package libparams-validationcompiler-perl. 1553s Preparing to unpack .../10-libparams-validationcompiler-perl_0.31-1_all.deb ... 1553s Unpacking libparams-validationcompiler-perl (0.31-1) ... 1553s Selecting previously unselected package libmro-compat-perl. 1553s Preparing to unpack .../11-libmro-compat-perl_0.15-2_all.deb ... 1553s Unpacking libmro-compat-perl (0.15-2) ... 1553s Selecting previously unselected package libxstring-perl:ppc64el. 1553s Preparing to unpack .../12-libxstring-perl_0.005-2build4_ppc64el.deb ... 1553s Unpacking libxstring-perl:ppc64el (0.005-2build4) ... 1553s Selecting previously unselected package libspecio-perl. 1553s Preparing to unpack .../13-libspecio-perl_0.48-1_all.deb ... 1553s Unpacking libspecio-perl (0.48-1) ... 1553s Selecting previously unselected package libdatetime-locale-perl. 1553s Preparing to unpack .../14-libdatetime-locale-perl_1%3a1.41-1_all.deb ... 1553s Unpacking libdatetime-locale-perl (1:1.41-1) ... 1554s Selecting previously unselected package libdatetime-timezone-perl. 1554s Preparing to unpack .../15-libdatetime-timezone-perl_1%3a2.63-2+2024b_all.deb ... 1554s Unpacking libdatetime-timezone-perl (1:2.63-2+2024b) ... 1554s Selecting previously unselected package libdatetime-perl. 1554s Preparing to unpack .../16-libdatetime-perl_2%3a1.65-1build3_ppc64el.deb ... 1554s Unpacking libdatetime-perl (2:1.65-1build3) ... 1554s Selecting previously unselected package libdatetime-format-rfc3339-perl. 1554s Preparing to unpack .../17-libdatetime-format-rfc3339-perl_1.8.0-1_all.deb ... 1554s Unpacking libdatetime-format-rfc3339-perl (1.8.0-1) ... 1554s Selecting previously unselected package libemail-address-xs-perl. 1554s Preparing to unpack .../18-libemail-address-xs-perl_1.05-1build5_ppc64el.deb ... 1554s Unpacking libemail-address-xs-perl (1.05-1build5) ... 1554s Selecting previously unselected package libnet-idn-encode-perl. 1554s Preparing to unpack .../19-libnet-idn-encode-perl_2.500-5build1_ppc64el.deb ... 1554s Unpacking libnet-idn-encode-perl (2.500-5build1) ... 1554s Selecting previously unselected package libref-util-xs-perl. 1554s Preparing to unpack .../20-libref-util-xs-perl_0.117-2build5_ppc64el.deb ... 1554s Unpacking libref-util-xs-perl (0.117-2build5) ... 1554s Selecting previously unselected package libsereal-decoder-perl. 1554s Preparing to unpack .../21-libsereal-decoder-perl_5.004+ds-1build4_ppc64el.deb ... 1554s Unpacking libsereal-decoder-perl (5.004+ds-1build4) ... 1554s Selecting previously unselected package libsereal-encoder-perl. 1554s Preparing to unpack .../22-libsereal-encoder-perl_5.004+ds-1build4_ppc64el.deb ... 1554s Unpacking libsereal-encoder-perl (5.004+ds-1build4) ... 1554s Selecting previously unselected package libsereal-perl. 1554s Preparing to unpack .../23-libsereal-perl_5.004-1_all.deb ... 1554s Unpacking libsereal-perl (5.004-1) ... 1554s Selecting previously unselected package libtime-moment-perl. 1554s Preparing to unpack .../24-libtime-moment-perl_0.44-2build5_ppc64el.deb ... 1554s Unpacking libtime-moment-perl (0.44-2build5) ... 1554s Selecting previously unselected package libtype-tiny-xs-perl:ppc64el. 1554s Preparing to unpack .../25-libtype-tiny-xs-perl_0.025-2build1_ppc64el.deb ... 1554s Unpacking libtype-tiny-xs-perl:ppc64el (0.025-2build1) ... 1554s Selecting previously unselected package autopkgtest-satdep. 1554s Preparing to unpack .../26-3-autopkgtest-satdep.deb ... 1554s Unpacking autopkgtest-satdep (0) ... 1554s Setting up libref-util-xs-perl (0.117-2build5) ... 1554s Setting up libnet-idn-encode-perl (2.500-5build1) ... 1554s Setting up libclass-singleton-perl (1.6-2) ... 1554s Setting up libtime-moment-perl (0.44-2build5) ... 1554s Setting up libxstring-perl:ppc64el (0.005-2build4) ... 1554s Setting up libsereal-encoder-perl (5.004+ds-1build4) ... 1554s Setting up libclass-data-inheritable-perl (0.10-1) ... 1554s Setting up libalgorithm-c3-perl (0.11-2) ... 1554s Setting up libnet-domain-tld-perl (1.75-4) ... 1554s Setting up libtype-tiny-xs-perl:ppc64el (0.025-2build1) ... 1554s Setting up libdata-validate-domain-perl (0.15-1) ... 1554s Setting up libdevel-stacktrace-perl (2.0500-1) ... 1554s Setting up libnamespace-autoclean-perl (0.31-1) ... 1554s Setting up libsereal-decoder-perl (5.004+ds-1build4) ... 1554s Setting up libeval-closure-perl (0.14-3) ... 1554s Setting up libemail-address-xs-perl (1.05-1build5) ... 1554s Setting up libsereal-perl (5.004-1) ... 1554s Setting up libexception-class-perl (1.45-1) ... 1554s Setting up libclass-c3-perl (0.35-2) ... 1554s Setting up libmro-compat-perl (0.15-2) ... 1554s Setting up libparams-validationcompiler-perl (0.31-1) ... 1554s Setting up libspecio-perl (0.48-1) ... 1554s Setting up libdatetime-locale-perl (1:1.41-1) ... 1554s Setting up libdatetime-timezone-perl (1:2.63-2+2024b) ... 1554s Setting up libdatetime-perl (2:1.65-1build3) ... 1554s Setting up libdatetime-format-rfc3339-perl (1.8.0-1) ... 1554s Setting up autopkgtest-satdep (0) ... 1554s Processing triggers for man-db (2.13.0-1) ... 1556s (Reading database ... 79100 files and directories currently installed.) 1556s Removing autopkgtest-satdep (0) ... 1557s autopkgtest [09:40:04]: test autodep8-perl-recommends: /usr/share/pkg-perl-autopkgtest/runner runtime-deps-and-recommends 1557s autopkgtest [09:40:04]: test autodep8-perl-recommends: [----------------------- 1559s /usr/share/pkg-perl-autopkgtest/runtime-deps-and-recommends.d/syntax.t .. 1559s 1..4 1559s ok 1 - Package libjson-schema-modern-perl is known to dpkg 1559s ok 2 - Got status information for package libjson-schema-modern-perl 1559s ok 3 - Got file list for package libjson-schema-modern-perl 1559s # Subtest: all modules in libjson-schema-modern-perl pass the syntax check 1559s 1..16 1559s ok 1 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Annotation.pm exited successfully 1559s ok 2 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Document.pm exited successfully 1559s ok 3 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Error.pm exited successfully 1559s ok 4 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Result.pm exited successfully 1559s ok 5 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/ResultNode.pm exited successfully 1559s ok 6 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Utilities.pm exited successfully 1559s ok 7 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Applicator.pm exited successfully 1559s ok 8 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Content.pm exited successfully 1559s ok 9 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Core.pm exited successfully 1559s ok 10 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm exited successfully 1559s ok 11 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/FormatAssertion.pm exited successfully 1559s ok 12 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/MetaData.pm exited successfully 1559s ok 13 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Unevaluated.pm exited successfully 1559s ok 14 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary/Validation.pm exited successfully 1559s ok 15 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern/Vocabulary.pm exited successfully 1559s ok 16 - /usr/bin/perl -wc /usr/share/perl5/JSON/Schema/Modern.pm exited successfully 1559s ok 4 - all modules in libjson-schema-modern-perl pass the syntax check 1559s ok 1559s All tests successful. 1559s Files=1, Tests=4, 2 wallclock secs ( 0.02 usr 0.01 sys + 1.63 cusr 0.08 csys = 1.74 CPU) 1559s Result: PASS 1559s autopkgtest [09:40:06]: test autodep8-perl-recommends: -----------------------] 1559s autodep8-perl-recommends PASS (superficial) 1559s autopkgtest [09:40:06]: test autodep8-perl-recommends: - - - - - - - - - - results - - - - - - - - - - 1560s autopkgtest [09:40:07]: @@@@@@@@@@@@@@@@@@@@ summary 1560s autodep8-perl-build-deps PASS 1560s autodep8-perl PASS (superficial) 1560s autodep8-perl-recommends PASS (superficial) 1564s -be3f-c3b4e0d75ce6"}], "description": null}, {"id": "d4a9ba53-090a-4189-a822-48d3e2d80aa2", "name": "builder-ppc64el-cpu2-ram32-disk50", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d4a9ba53-090a-4189-a822-48d3e2d80aa2"}], "description": null}, {"id": "d5142b95-4b59-484a-8d9d-e0519b9fdbba", "name": "builder-ppc64el-cpu4-ram32-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d5142b95-4b59-484a-8d9d-e0519b9fdbba"}], "description": null}, {"id": "d67d41f2-0658-4e81-ac4f-abc5e19944a7", "name": "builder-ppc64el-cpu2-ram64-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d67d41f2-0658-4e81-ac4f-abc5e19944a7"}], "description": null}, {"id": "d7441372-a91d-47c8-89a4-c08f59ece241", "name": "builder-ppc64el-cpu16-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/d7441372-a91d-47c8-89a4-c08f59ece241"}], "description": null}, {"id": "da39261b-e816-43f1-a7bb-f5e784e73fbb", "name": "builder-ppc64el-cpu16-ram16-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/da39261b-e816-43f1-a7bb-f5e784e73fbb"}], "description": null}, {"id": "dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d", "name": "builder-ppc64el-cpu32-ram256-disk100", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dcc8e80f-6e4d-4f7d-a68f-298ebcb4376d"}], "description": null}, {"id": "dd1211e5-4133-400a-9dc9-71fa83fd4d97", "name": "builder-ppc64el-cpu2-ram55-disk28", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dd1211e5-4133-400a-9dc9-71fa83fd4d97"}], "description": null}, {"id": "dfa7dc00-528e-45c5-b267-3d798e73e8da", "name": "builder-ppc64el-cpu8-ram4-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/dfa7dc00-528e-45c5-b267-3d798e73e8da"}], "description": null}, {"id": "e2116c8a-a35a-432f-8bf7-06bef30c10ae", "name": "builder-ppc64el-cpu8-ram12-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2116c8a-a35a-432f-8bf7-06bef30c10ae"}], "description": null}, {"id": "e2818c96-49bf-4337-a614-ae546d7d7302", "name": "builder-ppc64el-cpu4-ram32-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e2818c96-49bf-4337-a614-ae546d7d7302"}], "description": null}, {"id": "e4437d6f-4673-4fcb-89e8-1ce861789538", "name": "flaor_00396665", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}, {"rel": "bookmark", "href": "https://nova.ps6.canonical.com:8774/flavors/e4437d6f-4673-4fcb-89e8-1ce861789538"}], "description": null}, {"id": "e628d527-f077-426d-9380-5eea778aabc2", "name": "builder-ppc64el-cpu8-ram16-disk20", "links": [{"rel": "self", "href": "https://nova.ps6.canonical.com:8774/v2.1/flavors/e628d527-f077-42