Diff of the two buildlogs: -- --- b1/build.log 2025-11-03 16:36:34.039240064 +0000 +++ b2/build.log 2025-11-03 16:37:12.915242962 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Dec 6 10:57:51 -12 2026 -I: pbuilder-time-stamp: 1796597871 +I: Current time: Tue Nov 4 06:36:36 +14 2025 +I: pbuilder-time-stamp: 1762187796 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking libjson-validator-perl_5.15+dfsg-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1910266/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/D01_modify_environment starting +debug: Running on infom01-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 3 16:36 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='9a8dca8b7d10443f98a5f23f9483d315' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1910266' - PS1='# ' - PS2='> ' + INVOCATION_ID=e0dd97476eee459d89bda7dd178bb80e + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2735420 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Z4YGQzxT/pbuilderrc_iceT --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Z4YGQzxT/b1 --logfile b1/build.log libjson-validator-perl_5.15+dfsg-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Z4YGQzxT/pbuilderrc_jpCl --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Z4YGQzxT/b2 --logfile b2/build.log libjson-validator-perl_5.15+dfsg-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' I: uname -a - Linux infom02-amd64 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1910266/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -177,7 +209,7 @@ Get: 50 http://deb.debian.org/debian forky/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB] Get: 51 http://deb.debian.org/debian forky/main amd64 libyaml-libyaml-perl amd64 0.904.0+ds-1 [46.9 kB] Get: 52 http://deb.debian.org/debian forky/main amd64 openapi-specification all 3.2.0-1 [138 kB] -Fetched 14.4 MB in 1s (10.4 MB/s) +Fetched 14.4 MB in 0s (40.7 MB/s) Preconfiguring packages ... Selecting previously unselected package sensible-utils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19862 files and directories currently installed.) @@ -400,7 +432,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/libjson-validator-perl-5.15+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../libjson-validator-perl_5.15+dfsg-1_source.changes +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/libjson-validator-perl-5.15+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../libjson-validator-perl_5.15+dfsg-1_source.changes dpkg-buildpackage: info: source package libjson-validator-perl dpkg-buildpackage: info: source version 5.15+dfsg-1 dpkg-buildpackage: info: source distribution unstable @@ -442,1723 +478,60 @@ Writing Makefile for JSON::Validator Writing MYMETA.yml and MYMETA.json dh_auto_build - make -j16 + make -j12 make[1]: Entering directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' -cp lib/JSON/Validator/Schema/Draft201909.pm blib/lib/JSON/Validator/Schema/Draft201909.pm -cp lib/JSON/Validator/Schema/Draft4.pm blib/lib/JSON/Validator/Schema/Draft4.pm -cp lib/JSON/Validator/Schema/OpenAPIv2.pm blib/lib/JSON/Validator/Schema/OpenAPIv2.pm -cp lib/JSON/Validator/Joi.pm blib/lib/JSON/Validator/Joi.pm -cp lib/JSON/Validator/URI.pm blib/lib/JSON/Validator/URI.pm cp lib/JSON/Validator/Schema/Draft7.pm blib/lib/JSON/Validator/Schema/Draft7.pm -cp lib/JSON/Validator.pm blib/lib/JSON/Validator.pm -cp lib/JSON/Validator/Formats.pm blib/lib/JSON/Validator/Formats.pm cp lib/JSON/Validator/Util.pm blib/lib/JSON/Validator/Util.pm +cp lib/JSON/Validator/Schema/Draft201909.pm blib/lib/JSON/Validator/Schema/Draft201909.pm +cp lib/JSON/Validator/Schema/Draft4.pm blib/lib/JSON/Validator/Schema/Draft4.pm cp lib/JSON/Validator/Schema/OpenAPIv3.pm blib/lib/JSON/Validator/Schema/OpenAPIv3.pm -cp lib/JSON/Validator/Error.pm blib/lib/JSON/Validator/Error.pm +cp lib/JSON/Validator/Formats.pm blib/lib/JSON/Validator/Formats.pm cp lib/JSON/Validator/Schema.pm blib/lib/JSON/Validator/Schema.pm +cp lib/JSON/Validator/URI.pm blib/lib/JSON/Validator/URI.pm cp lib/JSON/Validator/Schema/Draft6.pm blib/lib/JSON/Validator/Schema/Draft6.pm +cp lib/JSON/Validator/Joi.pm blib/lib/JSON/Validator/Joi.pm +cp lib/JSON/Validator/Schema/OpenAPIv2.pm blib/lib/JSON/Validator/Schema/OpenAPIv2.pm +cp lib/JSON/Validator.pm blib/lib/JSON/Validator.pm cp lib/JSON/Validator/Store.pm blib/lib/JSON/Validator/Store.pm +cp lib/JSON/Validator/Error.pm blib/lib/JSON/Validator/Error.pm Manifying 14 pod documents make[1]: Leaving directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' - debian/rules override_dh_auto_test -make[1]: Entering directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' -RES_OPTIONS=attempts:0 http_proxy= dh_auto_test -- TEST_FILES="t/00-project.t t/benchmark.t t/coerce-default.t t/coerce.t t/deep-mixed-ref.t t/draft2019-09.t t/draft4.t t/draft6.t t/draft7.t t/invalid-ref.t t/issue-103-one-of.t t/issue-22-duplicate-error-messages.t t/issue-59-oneof-blessed-booleans.t t/issue-71-additionalproperties.t t/joi.t t/jv-allof-and-not.t t/jv-allof.t t/jv-anyof.t t/jv-array.t t/jv-basic.t t/jv-boolean.t t/jv-const.t t/jv-enum.t t/jv-formats.t t/jv-if-then-else.t t/jv-integer.t t/jv-not.t t/jv-number.t t/jv-object.t t/jv-oneof.t t/jv-required.t t/jv-string.t t/load-data.t t/load-file.t t/load-yaml-pp.t t/load-yaml.t t/newline-warnings.t t/openapiv2-collection-format.t t/openapiv2-default-values.t t/openapiv2-discriminator.t t/openapiv2-file.t t/openapiv2-headers.t t/openapiv2-readonly.t t/openapiv2-routes.t t/openapiv3-coerce-array.t t/openapiv3-default-values.t t/openapiv3-discriminator.t t/openapiv3-nullable.t t/openapiv3-readonly-writeonly.t t/openapiv3-style-explode.t t/predictable-errors.t t/random-errors.t t/recursive_data_protection.t t/relative-ref.t t/to-json.t t/unicode-multibyte.t t/uri.t t/util-checksum-yaml-xs.t t/util.t t/validate-id.t t/validate-recursive.t" - make -j16 test TEST_VERBOSE=1 TEST_FILES="t/00-project.t t/benchmark.t t/coerce-default.t t/coerce.t t/deep-mixed-ref.t t/draft2019-09.t t/draft4.t t/draft6.t t/draft7.t t/invalid-ref.t t/issue-103-one-of.t t/issue-22-duplicate-error-messages.t t/issue-59-oneof-blessed-booleans.t t/issue-71-additionalproperties.t t/joi.t t/jv-allof-and-not.t t/jv-allof.t t/jv-anyof.t t/jv-array.t t/jv-basic.t t/jv-boolean.t t/jv-const.t t/jv-enum.t t/jv-formats.t t/jv-if-then-else.t t/jv-integer.t t/jv-not.t t/jv-number.t t/jv-object.t t/jv-oneof.t t/jv-required.t t/jv-string.t t/load-data.t t/load-file.t t/load-yaml-pp.t t/load-yaml.t t/newline-warnings.t t/openapiv2-collection-format.t t/openapiv2-default-values.t t/openapiv2-discriminator.t t/openapiv2-file.t t/openapiv2-headers.t t/openapiv2-readonly.t t/openapiv2-routes.t t/openapiv3-coerce-array.t t/openapiv3-default-values.t t/openapiv3-discriminator.t t/openapiv3-nullable.t t/openapiv3-readonly-writeonly.t t/openapiv3-style-explode.t t/predictable-errors.t t/random-errors.t t/recursive_data_protection.t t/relative-ref.t t/to-json.t t/unicode-multibyte.t t/uri.t t/util-checksum-yaml-xs.t t/util.t t/validate-id.t t/validate-recursive.t" -make[2]: Entering directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' -PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/00-project.t t/benchmark.t t/coerce-default.t t/coerce.t t/deep-mixed-ref.t t/draft2019-09.t t/draft4.t t/draft6.t t/draft7.t t/invalid-ref.t t/issue-103-one-of.t t/issue-22-duplicate-error-messages.t t/issue-59-oneof-blessed-booleans.t t/issue-71-additionalproperties.t t/joi.t t/jv-allof-and-not.t t/jv-allof.t t/jv-anyof.t t/jv-array.t t/jv-basic.t t/jv-boolean.t t/jv-const.t t/jv-enum.t t/jv-formats.t t/jv-if-then-else.t t/jv-integer.t t/jv-not.t t/jv-number.t t/jv-object.t t/jv-oneof.t t/jv-required.t t/jv-string.t t/load-data.t t/load-file.t t/load-yaml-pp.t t/load-yaml.t t/newline-warnings.t t/openapiv2-collection-format.t t/openapiv2-default-values.t t/openapiv2-discriminator.t t/openapiv2-file.t t/openapiv2-headers.t t/openapiv2-readonly.t t/openapiv2-routes.t t/openapiv3-coerce-array.t t/openapiv3-default-values.t t/openapiv3-discriminator.t t/openapiv3-nullable.t t/openapiv3-readonly-writeonly.t t/openapiv3-style-explode.t t/predictable-errors.t t/random-errors.t t/recursive_data_protection.t t/relative-ref.t t/to-json.t t/unicode-multibyte.t t/uri.t t/util-checksum-yaml-xs.t t/util.t t/validate-id.t t/validate-recursive.t -t/00-project.t ......................... skipped: No such directory: .git -t/benchmark.t .......................... skipped: TEST_BENCHMARK=500 -t/coerce-default.t ..................... -ok 1 - coerce defaults -ok 2 - coerce def -ok 3 - defaults pass validation -ok 4 - data was mutated -ok 5 - only subscribed_to was mutated -ok 6 - default values must be valid -1..6 -ok -t/coerce.t ............................. -ok 1 - hash is accepted -ok 2 - hash reference is accepted -# make sure input is coerced -ok 3 - 1 is accepted -ok 4 - no quotes around boolean {"type":"boolean"} -ok 5 - no quotes around boolean {"type":"boolean"} -ok 6 - no quotes around boolean {"type":"boolean"} -ok 7 - no quotes around boolean {"type":["array","boolean"]} -ok 8 - no quotes around boolean {"type":["array","boolean"]} -ok 9 - no quotes around boolean {"type":["array","boolean"]} -ok 10 - no quotes around boolean {"allOf":[{"type":"boolean"}]} -ok 11 - no quotes around boolean {"allOf":[{"type":"boolean"}]} -ok 12 - no quotes around boolean {"allOf":[{"type":"boolean"}]} -ok 13 - no quotes around boolean {"anyOf":[{"type":"array"},{"type":"boolean"}]} -ok 14 - no quotes around boolean {"anyOf":[{"type":"array"},{"type":"boolean"}]} -ok 15 - no quotes around boolean {"anyOf":[{"type":"array"},{"type":"boolean"}]} -ok 16 - no quotes around boolean {"oneOf":[{"type":"boolean"},{"type":"array"}]} -ok 17 - no quotes around boolean {"oneOf":[{"type":"boolean"},{"type":"array"}]} -ok 18 - no quotes around boolean {"oneOf":[{"type":"boolean"},{"type":"array"}]} -ok 19 - no quotes around integer {"type":"integer"} -ok 20 - no quotes around integer {"type":"integer"} -ok 21 - no quotes around integer {"type":"integer"} -ok 22 - no quotes around integer {"type":["array","integer"]} -ok 23 - no quotes around integer {"type":["array","integer"]} -ok 24 - no quotes around integer {"type":["array","integer"]} -ok 25 - no quotes around integer {"allOf":[{"type":"integer"}]} -ok 26 - no quotes around integer {"allOf":[{"type":"integer"}]} -ok 27 - no quotes around integer {"allOf":[{"type":"integer"}]} -ok 28 - no quotes around integer {"anyOf":[{"type":"array"},{"type":"integer"}]} -ok 29 - no quotes around integer {"anyOf":[{"type":"array"},{"type":"integer"}]} -ok 30 - no quotes around integer {"anyOf":[{"type":"array"},{"type":"integer"}]} -ok 31 - no quotes around integer {"oneOf":[{"type":"integer"},{"type":"array"}]} -ok 32 - no quotes around integer {"oneOf":[{"type":"integer"},{"type":"array"}]} -ok 33 - no quotes around integer {"oneOf":[{"type":"integer"},{"type":"array"}]} -ok 34 - no quotes around number {"type":"number"} -ok 35 - no quotes around number {"type":"number"} -ok 36 - no quotes around number {"type":"number"} -ok 37 - no quotes around number {"type":["array","number"]} -ok 38 - no quotes around number {"type":["array","number"]} -ok 39 - no quotes around number {"type":["array","number"]} -ok 40 - no quotes around number {"allOf":[{"type":"number"}]} -ok 41 - no quotes around number {"allOf":[{"type":"number"}]} -ok 42 - no quotes around number {"allOf":[{"type":"number"}]} -ok 43 - no quotes around number {"anyOf":[{"type":"array"},{"type":"number"}]} -ok 44 - no quotes around number {"anyOf":[{"type":"array"},{"type":"number"}]} -ok 45 - no quotes around number {"anyOf":[{"type":"array"},{"type":"number"}]} -ok 46 - no quotes around number {"oneOf":[{"type":"number"},{"type":"array"}]} -ok 47 - no quotes around number {"oneOf":[{"type":"number"},{"type":"array"}]} -ok 48 - no quotes around number {"oneOf":[{"type":"number"},{"type":"array"}]} -1..48 -ok -t/deep-mixed-ref.t ..................... -ok 1 - valid input -ok 2 - invalid age -1..2 -ok -t/draft2019-09.t ....................... -# Subtest: formats - ok 1 - duration - ok 2 - uuid - 1..2 -ok 1 - formats -# Subtest: number basic - ok 1 - valid: 1 - 1..1 -ok 2 - number basic -# Subtest: number maximum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -1 > maximum(-2) - 1..3 -ok 3 - number maximum -# Subtest: number minimum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -2 < minimum(-1) - 1..3 -ok 4 - number minimum -# Subtest: array basic - ok 1 - valid: [] - ok 2 - errors: /: Expected array - got object. - 1..2 -ok 5 - array basic -# Subtest: array items - ok 1 - valid: [1] - ok 2 - errors: /1: Expected number - got string. - ok 3 - valid: [1,"foo",1.2] - ok 4 - valid: [1,"foo",1.2] - 1..4 -ok 6 - array items -# Subtest: array additional_items - ok 1 - errors: /: Invalid number of items: 5/4. - 1..1 -ok 7 - array additional_items -# Subtest: array contains - ok 1 - valid: [1600,"NW"] - ok 2 - errors: /0: Expected string - got number. /1: Not in enum list: Nope. - 1..2 -ok 8 - array contains -# Subtest: array min_max - ok 1 - errors: /: Not enough items: 1/2. - ok 2 - valid: [1,2] - ok 3 - errors: /: Too many items: 3/2. - 1..3 -ok 9 - array min_max -# Subtest: array min_max_contains - ok 1 - errors: /: Contains not enough items: 1/2. - ok 2 - errors: /: Contains too many items: 4/3. - ok 3 - valid: ["A","B"] - ok 4 - valid: ["A","B","C"] - 1..4 -ok 10 - array min_max_contains -# Subtest: array unique - ok 1 - valid: [123,124] - ok 2 - errors: /: Unique items required. - 1..2 -ok 11 - array unique -# Subtest: array unevaluated_items - not ok 1 - errors: /: Invalid number of items: 5/4. # TODO https://json-schema.org/draft/2019-09/json-schema-core.html#unevaluatedItems - # Failed (TODO) test 'errors: /: Invalid number of items: 5/4.' - # at t/test/array.pm line 65. - # Structures begin differing at: - # $got->[0] = Does not exist - # $expected->[0] = HASH(0x55e9440d1bf8) - # [] - 1..1 -ok 12 - array unevaluated_items -# Subtest: object basic - ok 1 - valid: {"mynumber":1} - ok 2 - errors: /: Expected object - got array. - 1..2 -ok 13 - object basic -# Subtest: object properties - ok 1 - valid: {"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 2 - errors: /number: Expected number - got string. - ok 3 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 4 - errors: /street_name: Missing property. - 1..4 -ok 14 - object properties -# Subtest: object additional_properties - ok 1 - errors: /: Properties not allowed: direction, foo. - ok 2 - valid: {"foo":"nope","number":1600} - 1..2 -ok 15 - object additional_properties -# Subtest: object pattern_properties - ok 1 - valid: {"I_0":42,"S_25":"This is a string"} - ok 2 - errors: /S_0: Expected string - got number. - 1..2 -ok 16 - object pattern_properties -# Subtest: object min_max - ok 1 - errors: /: Not enough properties: 0/1. - ok 2 - errors: /: Not enough properties: 1/2. - ok 3 - valid: {"a":1,"b":2} - ok 4 - valid: {"a":1,"b":2,"c":3} - ok 5 - errors: /: Too many properties: 4/3. - 1..5 -ok 17 - object min_max -# Subtest: object names - ok 1 - errors: /: /propertyName/surname String is too long: 7/5. - ok 2 - valid: {"name":"John","surname":"Doe"} - ok 3 - errors: /: /propertyName/FOO /anyOf/0 Not in enum list: foo, bar, baz. /: /propertyName/FOO /anyOf/1 Not in enum list: hello. - ok 4 - valid: {"foo":1} - 1..4 -ok 18 - object names -# Subtest: object dependent_required - ok 1 - errors: /billing_address: Missing property. Dependee: credit_card. - 1..1 -ok 19 - object dependent_required -# Subtest: object dependent_schemas - ok 1 - errors: /billing_address: Missing property. Dependee: credit_card. - 1..1 -ok 20 - object dependent_schemas -# Subtest: object unevaluated_properties - not ok 1 - errors: /: Properties not allowed: direction, foo. # TODO https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.9.3.2.4 - # Failed (TODO) test 'errors: /: Properties not allowed: direction, foo.' - # at t/test/object.pm line 113. - # Structures begin differing at: - # $got->[0] = Does not exist - # $expected->[0] = HASH(0x55e9440f2ee8) - # [] - 1..1 -ok 21 - object unevaluated_properties -# Subtest: anchor - ok 1 - foo anchor type - 1..1 -ok 22 - anchor -# Subtest: recursiveRef, without recursiveAnchor - ok 1 - An object of class 'JSON::Validator::Schema::Draft201909' isa 'JSON::Validator::Schema::Draft201909' - ok 2 - recursiveRef type - ok 3 - recursiveRef properties data - ok 4 - recursiveRef properties data items - ok 5 - recursive - ok 6 - schemas in the store - 1..6 -ok 23 - recursiveRef, without recursiveAnchor -# Subtest: test caching - ok 1 - cached - 1..1 -ok 24 - test caching -1..24 -ok -t/draft4.t ............................. -# Subtest: number basic - ok 1 - valid: 1 - 1..1 -ok 1 - number basic -# Subtest: number maximum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -1 > maximum(-2) - 1..3 -ok 2 - number maximum -# Subtest: number minimum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -2 < minimum(-1) - 1..3 -ok 3 - number minimum -# Subtest: array basic - ok 1 - valid: [] - ok 2 - errors: /: Expected array - got object. - 1..2 -ok 4 - array basic -# Subtest: array items - ok 1 - valid: [1] - ok 2 - errors: /1: Expected number - got string. - ok 3 - valid: [1,"foo",1.2] - ok 4 - valid: [1,"foo",1.2] - 1..4 -ok 5 - array items -# Subtest: array additional_items - ok 1 - errors: /: Invalid number of items: 5/4. - 1..1 -ok 6 - array additional_items -# Subtest: array min_max - ok 1 - errors: /: Not enough items: 1/2. - ok 2 - valid: [1,2] - ok 3 - errors: /: Too many items: 3/2. - 1..3 -ok 7 - array min_max -# Subtest: array unique - ok 1 - valid: [123,124] - ok 2 - errors: /: Unique items required. - 1..2 -ok 8 - array unique -# Subtest: object basic - ok 1 - valid: {"mynumber":1} - ok 2 - errors: /: Expected object - got array. - 1..2 -ok 9 - object basic -# Subtest: object properties - ok 1 - valid: {"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 2 - errors: /number: Expected number - got string. - ok 3 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 4 - errors: /street_name: Missing property. - 1..4 -ok 10 - object properties -# Subtest: object additional_properties - ok 1 - errors: /: Properties not allowed: direction, foo. - ok 2 - valid: {"foo":"nope","number":1600} - 1..2 -ok 11 - object additional_properties -# Subtest: object pattern_properties - ok 1 - valid: {"I_0":42,"S_25":"This is a string"} - ok 2 - errors: /S_0: Expected string - got number. - 1..2 -ok 12 - object pattern_properties -# Subtest: object min_max - ok 1 - errors: /: Not enough properties: 0/1. - ok 2 - errors: /: Not enough properties: 1/2. - ok 3 - valid: {"a":1,"b":2} - ok 4 - valid: {"a":1,"b":2,"c":3} - ok 5 - errors: /: Too many properties: 4/3. - 1..5 -ok 13 - object min_max -# Subtest: exclusiveMaximum - ok 1 - errors: /: 2.4 >= maximum(2.4) - 1..1 -ok 14 - exclusiveMaximum -# Subtest: exclusiveMinimum - ok 1 - errors: /: 0 >= maximum(0) - 1..1 -ok 15 - exclusiveMinimum -# Subtest: bundle - ok 1 - bundle ref - ok 2 - bundled spec under definitions - 1..2 -ok 16 - bundle -1..16 -ok -t/draft6.t ............................. -# Subtest: number basic - ok 1 - valid: 1 - 1..1 -ok 1 - number basic -# Subtest: number maximum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -1 > maximum(-2) - 1..3 -ok 2 - number maximum -# Subtest: number minimum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -2 < minimum(-1) - 1..3 -ok 3 - number minimum -# Subtest: array basic - ok 1 - valid: [] - ok 2 - errors: /: Expected array - got object. - 1..2 -ok 4 - array basic -# Subtest: array items - ok 1 - valid: [1] - ok 2 - errors: /1: Expected number - got string. - ok 3 - valid: [1,"foo",1.2] - ok 4 - valid: [1,"foo",1.2] - 1..4 -ok 5 - array items -# Subtest: array additional_items - ok 1 - errors: /: Invalid number of items: 5/4. - 1..1 -ok 6 - array additional_items -# Subtest: array contains - ok 1 - valid: [1600,"NW"] - ok 2 - errors: /0: Expected string - got number. /1: Not in enum list: Nope. - 1..2 -ok 7 - array contains -# Subtest: array min_max - ok 1 - errors: /: Not enough items: 1/2. - ok 2 - valid: [1,2] - ok 3 - errors: /: Too many items: 3/2. - 1..3 -ok 8 - array min_max -# Subtest: array unique - ok 1 - valid: [123,124] - ok 2 - errors: /: Unique items required. - 1..2 -ok 9 - array unique -# Subtest: object basic - ok 1 - valid: {"mynumber":1} - ok 2 - errors: /: Expected object - got array. - 1..2 -ok 10 - object basic -# Subtest: object properties - ok 1 - valid: {"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 2 - errors: /number: Expected number - got string. - ok 3 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 4 - errors: /street_name: Missing property. - 1..4 -ok 11 - object properties -# Subtest: object additional_properties - ok 1 - errors: /: Properties not allowed: direction, foo. - ok 2 - valid: {"foo":"nope","number":1600} - 1..2 -ok 12 - object additional_properties -# Subtest: object pattern_properties - ok 1 - valid: {"I_0":42,"S_25":"This is a string"} - ok 2 - errors: /S_0: Expected string - got number. - 1..2 -ok 13 - object pattern_properties -# Subtest: object min_max - ok 1 - errors: /: Not enough properties: 0/1. - ok 2 - errors: /: Not enough properties: 1/2. - ok 3 - valid: {"a":1,"b":2} - ok 4 - valid: {"a":1,"b":2,"c":3} - ok 5 - errors: /: Too many properties: 4/3. - 1..5 -ok 14 - object min_max -# Subtest: object names - ok 1 - errors: /: /propertyName/surname String is too long: 7/5. - ok 2 - valid: {"name":"John","surname":"Doe"} - ok 3 - errors: /: /propertyName/FOO /anyOf/0 Not in enum list: foo, bar, baz. /: /propertyName/FOO /anyOf/1 Not in enum list: hello. - ok 4 - valid: {"foo":1} - 1..4 -ok 15 - object names -# Subtest: exclusiveMaximum - ok 1 - errors: /: 2.4 >= maximum(2.4) - ok 2 - errors: /: 0 >= maximum(0) - 1..2 -ok 16 - exclusiveMaximum -# Subtest: exclusiveMinimum - ok 1 - errors: /: 4.2 <= minimum(4.2) - ok 2 - errors: /: 0 <= minimum(0) - 1..2 -ok 17 - exclusiveMinimum -1..17 -ok -t/draft7.t ............................. -# Subtest: number basic - ok 1 - valid: 1 - 1..1 -ok 1 - number basic -# Subtest: number maximum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -1 > maximum(-2) - 1..3 -ok 2 - number maximum -# Subtest: number minimum - ok 1 - valid: 0 - ok 2 - valid: 1 - ok 3 - errors: /: -2 < minimum(-1) - 1..3 -ok 3 - number minimum -# Subtest: array basic - ok 1 - valid: [] - ok 2 - errors: /: Expected array - got object. - 1..2 -ok 4 - array basic -# Subtest: array items - ok 1 - valid: [1] - ok 2 - errors: /1: Expected number - got string. - ok 3 - valid: [1,"foo",1.2] - ok 4 - valid: [1,"foo",1.2] - 1..4 -ok 5 - array items -# Subtest: array additional_items - ok 1 - errors: /: Invalid number of items: 5/4. - 1..1 -ok 6 - array additional_items -# Subtest: array contains - ok 1 - valid: [1600,"NW"] - ok 2 - errors: /0: Expected string - got number. /1: Not in enum list: Nope. - 1..2 -ok 7 - array contains -# Subtest: array min_max - ok 1 - errors: /: Not enough items: 1/2. - ok 2 - valid: [1,2] - ok 3 - errors: /: Too many items: 3/2. - 1..3 -ok 8 - array min_max -# Subtest: array unique - ok 1 - valid: [123,124] - ok 2 - errors: /: Unique items required. - 1..2 -ok 9 - array unique -# Subtest: array unevaluated_items - not ok 1 - errors: /: Invalid number of items: 5/4. # TODO https://json-schema.org/draft/2019-09/json-schema-core.html#unevaluatedItems - # Failed (TODO) test 'errors: /: Invalid number of items: 5/4.' - # at t/test/array.pm line 65. - # Structures begin differing at: - # $got->[0] = Does not exist - # $expected->[0] = HASH(0x5564c847be18) - # [] - 1..1 -ok 10 - array unevaluated_items -# Subtest: object basic - ok 1 - valid: {"mynumber":1} - ok 2 - errors: /: Expected object - got array. - 1..2 -ok 11 - object basic -# Subtest: object properties - ok 1 - valid: {"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 2 - errors: /number: Expected number - got string. - ok 3 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 4 - errors: /street_name: Missing property. - 1..4 -ok 12 - object properties -# Subtest: object additional_properties - ok 1 - errors: /: Properties not allowed: direction, foo. - ok 2 - valid: {"foo":"nope","number":1600} - 1..2 -ok 13 - object additional_properties -# Subtest: object pattern_properties - ok 1 - valid: {"I_0":42,"S_25":"This is a string"} - ok 2 - errors: /S_0: Expected string - got number. - 1..2 -ok 14 - object pattern_properties -# Subtest: object min_max - ok 1 - errors: /: Not enough properties: 0/1. - ok 2 - errors: /: Not enough properties: 1/2. - ok 3 - valid: {"a":1,"b":2} - ok 4 - valid: {"a":1,"b":2,"c":3} - ok 5 - errors: /: Too many properties: 4/3. - 1..5 -ok 15 - object min_max -# Subtest: object names - ok 1 - errors: /: /propertyName/surname String is too long: 7/5. - ok 2 - valid: {"name":"John","surname":"Doe"} - ok 3 - errors: /: /propertyName/FOO /anyOf/0 Not in enum list: foo, bar, baz. /: /propertyName/FOO /anyOf/1 Not in enum list: hello. - ok 4 - valid: {"foo":1} - 1..4 -ok 16 - object names -# Subtest: exclusiveMaximum - ok 1 - errors: /: 2.4 >= maximum(2.4) - ok 2 - errors: /: 0 >= maximum(0) - 1..2 -ok 17 - exclusiveMaximum -# Subtest: exclusiveMinimum - ok 1 - errors: /: 4.2 <= minimum(4.2) - ok 2 - errors: /: 0 <= minimum(0) - 1..2 -ok 18 - exclusiveMinimum -# Subtest: bundle - ok 1 - bundle ref - ok 2 - bundled spec under $defs - 1..2 -ok 19 - bundle -1..19 -ok -t/invalid-ref.t ........................ -ok 1 - missing definition -ok 2 - loading missing ref failed -ok 3 - error message -1..3 -ok -t/issue-103-one-of.t ................... -ok 1 - errors: /sym: /oneOf/0/allOf/0/allOf/0 Missing property. /template: /oneOf/0/allOf/2 Missing property. /sym: /oneOf/1/allOf/0 Missing property. /: /oneOf/2 Expected string - got object. -ok 2 - errors: /: oneOf rules 0, 1 match. -1..2 -ok -t/issue-22-duplicate-error-messages.t .. -ok 1 - errors: /foo: Not in enum list: bar, baz. -ok 2 - errors: /foo: Expected string - got number. -1..2 -ok -t/issue-59-oneof-blessed-booleans.t .... -ok 1 - oneof blessed booleans -1..1 -ok -t/issue-71-additionalproperties.t ...... -ok 1 - errors: /: Properties not allowed: haha. -1..1 -ok -t/joi.t ................................ -ok 1 - An object of class 'JSON::Validator::Schema::Draft7' isa 'JSON::Validator::Schema' -ok 2 - default coercion -ok 3 - generated correct object schema -ok 4 - generated correct array schema -ok 5 - enum for string -ok 6 - enum for integer -ok 7 - valid: {"age":34,"email":"jhthorsen@cpan.org","name":"Jan Henning Thorsen"} -ok 8 - errors: /age: -1 < minimum(0) /email: Missing property. -# test that compile and not compile generates same strict result -ok 9 - errors: /: Properties not allowed: toto. -ok 10 - errors: /0: Properties not allowed: toto. -ok 11 - errors: /0: Properties not allowed: toto. -# can omit non-required objects containing required properties -ok 12 - valid: {} -# must include required objects containing required properties -ok 13 - errors: /a: Missing property. -ok 14 - need to extend same type -ok 15 - extended array -ok 16 - extended array did not mutate $joi -ok 17 - extended array did not mutate $by -ok 18 - extended items in an array -ok 19 - extended items in an array did not mutate $joi -ok 20 - extended items in an array did not mutate $by -ok 21 - extended integer -ok 22 - extended integer did not mutate $joi -ok 23 - extended integer did not mutate $by -ok 24 - extended object -ok 25 - extended object did not mutate $joi -ok 26 - extended object did not mutate $by -ok 27 - null or string -ok 28 - extended object with required -ok 29 - extended object with required did not mutate $joi -ok 30 - extended object with required did not mutate $by -1..30 -ok -t/jv-allof-and-not.t ................... -# Subtest: property "required" must be present - ok 1 - valid: {"foo":1,"required":2} - ok 2 - errors: /required: /allOf/0 Missing property. - ok 3 - valid: {"foo":3,"forbidden":3,"required":2} - ok 4 - errors: /required: /allOf/0 Missing property. - 1..4 -ok 1 - property "required" must be present -# Subtest: Property "forbidden" must not be present - ok 1 - valid: {"foo":1,"required":2} - ok 2 - errors: /: Should not match. /required: /allOf/0 Missing property. - ok 3 - errors: /: Should not match. - ok 4 - errors: /required: /allOf/0 Missing property. - 1..4 -ok 2 - Property "forbidden" must not be present -# Subtest: Move "not" constraint to "allOf" - ok 1 - valid: {"foo":1,"required":2} - ok 2 - errors: /: /allOf/1 Should not match. /required: /allOf/0 Missing property. - ok 3 - errors: /: /allOf/1 Should not match. - ok 4 - errors: /required: /allOf/0 Missing property. - 1..4 -ok 3 - Move "not" constraint to "allOf" -1..3 -ok -t/jv-allof.t ........................... -ok 1 - valid: "short" -ok 2 - errors: /: /allOf Expected string - got number. -ok 3 - errors: /: /allOf/0 String is too long: 9/7. /: /allOf/1 String is too long: 9/5. -ok 4 - errors: /: /allOf/1 String is too long: 7/5. -ok 5 - valid: "123" -ok 6 - valid: "aaaa" -ok 7 - errors: /: /oneOf/0 String does not match ^[0-9]+$. /: /oneOf/1 String is too long: 5/4. -ok 8 - errors: /: /allOf/0 String is too long: 10/5. /: /anyOf/0 String does not match ^[0-9]+$. /: /anyOf/1 String does not match ^[a-z]+$. /: /oneOf/0 String does not match ^[0-9]+$. /: /oneOf/1 String is too long: 10/4. /: /oneOf/1 String does not match ^[a-z]+$. -ok 9 - errors: /: Expected integer/boolean - got string. -ok 10 - errors: /: /allOf/0 Expected integer/boolean - got string. -ok 11 - errors: /: /allOf/0/allOf/0 Expected boolean - got string. /: /allOf/0/allOf/1 String is too long: 5/2. /: /allOf/1 Expected integer - got string. -ok 12 - errors: /foo: /allOf/0 Expected array - got string. /: /allOf/1 Expected boolean - got object. -1..12 -ok -t/jv-anyof.t ........................... -ok 1 - valid: "short" -ok 2 - errors: /: /anyOf/0 String is too long: 8/5. /: /anyOf/1 Expected number - got string. -ok 3 - valid: 12 -ok 4 - errors: /: /anyOf/0 Expected string - got number. /: /anyOf/1 -1 < minimum(0) -ok 5 - errors: /: /anyOf Expected string/number - got object. -ok 6 - valid: 1 -ok 7 - valid: {"type":"string"} -ok 8 - valid: {"age":6} -ok 9 - errors: /a: /anyOf/0 Missing property. /b: /anyOf/1 Missing property. -ok 10 - errors: /: Not in enum list: 123, HELLO. -ok 11 - errors: /: /anyOf/0 Should not match. /: /anyOf/1 Expected integer/boolean - got string. -ok 12 - errors: /: Expected integer/boolean - got string. -ok 13 - errors: /: /anyOf/0 Expected integer/boolean - got string. -ok 14 - errors: /: /anyOf/0/anyOf/0 Expected boolean - got string. /: /anyOf/0/anyOf/1 String is too long: 5/2. /: /anyOf/1 Expected integer - got string. -ok 15 - errors: /foo: Expected array - got string. -ok 16 - errors: /foo: /anyOf/0 Expected array - got string. /: /anyOf/1 Expected boolean - got object. -1..16 -ok -t/jv-array.t ........................... -ok 1 - valid: [1] -ok 2 - errors: /1: Expected number - got string. -ok 3 - errors: /: Not enough items: 1/2. -ok 4 - valid: [1,2] -ok 5 - errors: /: Too many items: 3/2. -ok 6 - valid: [123,124] -ok 7 - errors: /: Unique items required. -ok 8 - valid: [1600,"Pennsylvania","Avenue","NW"] -ok 9 - errors: /2: Not in enum list: Street, Avenue, Boulevard. -ok 10 - valid: [10,"Downing","Street"] -ok 11 - valid: [1600,"Pennsylvania","Avenue","NW","Washington"] -ok 12 - errors: /: Invalid number of items: 5/4. -ok 13 - valid: [1600,"NW"] -ok 14 - errors: /0: Expected string - got number. /1: Not in enum list: Nope. -ok 15 - numbers are valid -ok 16 - coerced into integers -ok 17 - integers are valid -ok 18 - coerced into numbers -ok 19 - valid: [1,"a",null] -ok 20 - errors: /: Does not match const: [1,"a",null]. -ok 21 - valid: [1,"foo",1.2] -ok 22 - valid: [1,"foo",1.2] -ok 23 - errors: /2: Should not match. -ok 24 - errors: /0: Should not match. /1: Should not match. /2: Should not match. -ok 25 - valid: [1,"foo",1.2] -ok 26 - errors: /0: Should not match. /1: Should not match. /2: Should not match. -ok 27 - errors: /2: Should not match. -ok 28 - errors: /: No items contained. -ok 29 - errors: /0: Does not match const: "foo". -ok 30 - errors: /0: Should not match. -ok 31 - errors: /0: Should not match. -ok 32 - errors: /0: Should not match. /1: Should not match. -ok 33 - errors: /0: Should not match. /1: Should not match. -ok 34 - errors: /1: Expected number - got string. -ok 35 - errors: /0: Expected string - got number. -1..35 -ok -t/jv-basic.t ........................... -ok 1 - valid: null -ok 2 - valid: [] -ok 3 - valid: {} -ok 4 - valid: 123 -ok 5 - valid: "foo" -ok 6 - valid: null -ok 7 - errors: /: Expected null - got number. -ok 8 - valid: true -ok 9 - valid: false -ok 10 - valid: 1 -ok 11 - valid: 1.2 -ok 12 - valid: "a string" -ok 13 - valid: {"a":"b"} -ok 14 - valid: [1,2,3] -ok 15 - valid: true -ok 16 - valid: false -ok 17 - valid: 1 -ok 18 - valid: 1.2 -ok 19 - valid: "a string" -ok 20 - valid: {"a":"b"} -ok 21 - valid: [1,2,3] -ok 22 - errors: /: Should not match. -ok 23 - errors: /: Should not match. -ok 24 - errors: /: Should not match. -ok 25 - errors: /: Should not match. -ok 26 - errors: /: Should not match. -ok 27 - errors: /: Should not match. -ok 28 - errors: /: Should not match. -1..28 -ok -t/jv-boolean.t ......................... -ok 1 - errors: /v: Expected boolean - got string. -ok 2 - errors: /v: Expected boolean - got string. -ok 3 - errors: /v: Expected boolean - got number. -ok 4 - errors: /v: Expected boolean - got number. -ok 5 - valid: {"v":true} -ok 6 - valid: {"v":false} -ok 7 - valid: {"v":true} -ok 8 - errors: /v: Expected boolean - got number. -ok 9 - errors: /v: Expected boolean - got number. -ok 10 - errors: /v: Expected boolean - got string. -ok 11 - valid: {"v":null} -ok 12 - errors: /v: Expected boolean - got BoolTestFail. -ok 13 - valid: false -ok 14 - valid: true -ok 15 - errors: /: Expected boolean - got string. -ok 16 - errors: /: Expected object - got null. -# boolean const -ok 17 - valid: false -ok 18 - errors: /: Does not match const: false. -ok 19 - valid: true -ok 20 - errors: /: Does not match const: true. -# boolean objects -ok 21 - An object of class 'JSON::PP::Boolean' isa 'JSON::PP::Boolean' -ok 22 - valid: {"v":true} -ok 23 - valid: {"type":"boolean"} -# coerce check data -ok 24 - valid: {"v":true} -ok 25 - data was coerced correctly -ok 26 - valid: {"v":false} -ok 27 - data was coerced correctly -ok 28 - valid: {"v":0} -ok 29 - data was coerced correctly -ok 30 - valid: {"v":""} -ok 31 - data was coerced correctly -ok 32 - valid: {"v":"false"} -ok 33 - data was coerced correctly -ok 34 - valid: {"v":"true"} -ok 35 - data was coerced correctly -ok 36 - valid: {"v":1} -ok 37 - data was coerced correctly -ok 38 - valid: {"v":"1"} -ok 39 - data was coerced correctly -# coerce fail -ok 40 - errors: /v: Expected boolean - got number. -ok 41 - errors: /v: Expected boolean - got number. -ok 42 - errors: /v: Expected boolean - got string. -ok 43 - errors: /v: Expected boolean - got string. -# coerce const -ok 44 - valid: 0 -ok 45 - errors: /: Does not match const: false. -ok 46 - valid: 1 -ok 47 - errors: /: Does not match const: true. -1..47 -ok -t/jv-const.t ........................... -ok 1 - valid: {"constancy":"as the northern star","name":"Caesar"} -ok 2 - valid: {"constancy":"there is a tide in the affairs of men","name":"Brutus"} -ok 3 - errors: /constancy: Does not match const: "as the northern star". -ok 4 - errors: /constancy: Does not match const: "there is a tide in the affairs of men". -ok 5 - valid: {"people":[{"age":42,"likes":"peanutbutter","name":"mr. chocolate fan"}]} -ok 6 - errors: /: Does not match const: null. -ok 7 - valid: null -ok 8 - errors: /: Does not match const: "". -ok 9 - valid: "" -ok 10 - valid: [1,"a",null] -ok 11 - errors: /: Does not match const: [1,"a",null]. -ok 12 - valid: true -ok 13 - valid: false -ok 14 - errors: /: Does not match const: true. -ok 15 - errors: /: Does not match const: false. -1..15 -ok -t/jv-enum.t ............................ -ok 1 - valid: {"chromosomes":["X","X"],"name":"Kate"} -ok 2 - valid: {"chromosomes":["X","Y"],"name":"Dave"} -ok 3 - valid: {"chromosomes":["Y","X"],"name":"Arnie"} -ok 4 - errors: /chromosomes: Not in enum list: ["X","Y"], ["Y","X"]. -ok 5 - errors: /chromosomes: Not in enum list: ["X","Y"], ["Y","X"]. -ok 6 - errors: /chromosomes: Not in enum list: ["X","Y"], ["Y","X"]. -ok 7 - errors: /some_prop/0: Not in enum list: x, y. -ok 8 - valid: {"name":null} -ok 9 - valid: {"name":false} -ok 10 - valid: {"name":true} -ok 11 - errors: /name: Expected string - got null. -ok 12 - errors: /name: Not in enum list: n, yes, true, false. -1..12 -ok -t/jv-formats.t ......................... -# Subtest: byte - ok 1 - valid: {"v":"amh0aG9yc2Vu"} - ok 2 - errors: /v: Does not match byte format. - 1..2 -ok 1 - byte -# Subtest: date - ok 1 - valid: {"v":"2014-12-09"} - ok 2 - errors: /v: Month out of range. - ok 3 - errors: /v: Day out of range. - ok 4 - errors: /v: Does not match date format. - ok 5 - errors: /v: Does not match date format. - ok 6 - errors: /v: Does not match date format. - ok 7 - errors: /v: Does not match date format. - ok 8 - errors: /v: Does not match date format. - 1..8 -ok 2 - date -# Subtest: date-time - ok 1 - valid: {"v":"2017-03-29T23:02:55.831Z"} - ok 2 - valid: {"v":"2017-03-29t23:02:55.01z"} - ok 3 - valid: {"v":"2017-03-29 23:02:55-12:00"} - ok 4 - valid: {"v":"2016-02-29T23:02:55+05:00"} - ok 5 - valid: {"v":"2006-01-02 15:04:05+23:59"} - ok 6 - valid: {"v":"2006-01-02 15:04:05-23:59"} - ok 7 - errors: /v: Does not match date-time format. - ok 8 - errors: /v: Does not match date-time format. - ok 9 - errors: /v: Does not match date-time format. - ok 10 - errors: /v: Does not match date-time format. - ok 11 - errors: /v: Does not match date-time format. - ok 12 - errors: /v: Does not match date-time format. - ok 13 - errors: /v: Does not match date-time format. - ok 14 - errors: /v: Does not match date-time format. - ok 15 - errors: /v: Does not match date-time format. - ok 16 - errors: /v: Second out of range. - ok 17 - errors: /v: Minute out of range. - ok 18 - errors: /v: Hour out of range. - ok 19 - errors: /v: Day out of range. - ok 20 - errors: /v: Day out of range. - ok 21 - errors: /v: Day out of range. - ok 22 - errors: /v: Day out of range. - ok 23 - errors: /v: Month out of range. - ok 24 - errors: /v: Month out of range. - ok 25 - errors: /v: Time offset minute out of range. - ok 26 - errors: /v: Time offset hour out of range. - 1..26 -ok 3 - date-time -# Subtest: double - ok 1 - valid: {"v":"1.1000000238418599085576943252817727625370025634765626"} # TODO cannot test double, since input is already rounded - 1..1 -ok 4 - double -# Subtest: duration - ok 1 - errors: /v: Does not match duration format. - ok 2 - valid: {"v":"P4Y"} - ok 3 - valid: {"v":"PT0S"} - ok 4 - valid: {"v":"P1M"} - ok 5 - valid: {"v":"PT1M"} - ok 6 - valid: {"v":"PT0.5M"} - ok 7 - valid: {"v":"PT0,5M"} - ok 8 - valid: {"v":"P23DT23H"} - ok 9 - valid: {"v":"P3Y6M4DT12H30M5S"} - 1..9 -ok 5 - duration -# Subtest: email - ok 1 - valid: {"v":"jhthorsen@cpan.org"} - ok 2 - errors: /v: Does not match email format. - ok 3 - errors: /v: Does not match email format. - ok 4 - errors: /v: Does not match email format. - ok 5 - errors: /v: Does not match email format. - 1..5 -ok 6 - email -# Subtest: float - ok 1 - valid: {"v":"-1.10000002384186"} - ok 2 - valid: {"v":"1.10000002384186"} - 1..2 -ok 7 - float -# Subtest: int32 - ok 1 - valid: {"v":"-2147483648"} - ok 2 - valid: {"v":"2147483647"} - ok 3 - errors: /v: Does not match int32 format. - 1..3 -ok 8 - int32 -# Subtest: int64 - ok 1 - valid: {"v":"-9223372036854775808"} - ok 2 - valid: {"v":"9223372036854775807"} - ok 3 - errors: /v: Does not match int64 format. - 1..3 -ok 9 - int64 -# Subtest: hostname - ok 1 - valid: {"v":"mojolicio.us"} - ok 2 - errors: /v: Does not match hostname format. - 1..2 -ok 10 - hostname -# Subtest: idn-email - ok 1 - valid: {"v":"用户@例子.广告"} - ok 2 - errors: /v: Does not match idn-email format. - 1..2 -ok 11 - idn-email -# Subtest: idn-hostname - ok 1 - valid: {"v":"例子.广告"} - 1..1 -ok 12 - idn-hostname -# Subtest: iri - ok 1 - valid: {"v":"http:\/\/mojolicio.us\/?ø=123"} - ok 2 - valid: {"v":"https:\/\/例子.广告\/Ῥόδος"} - ok 3 - errors: /v: Scheme missing. - 1..3 -ok 13 - iri -# Subtest: iri-reference - ok 1 - valid: {"v":"\/Ῥόδος"} - ok 2 - valid: {"v":"Ῥόδος"} - ok 3 - valid: {"v":"http:\/\/\/Ῥόδος"} - 1..3 -ok 14 - iri-reference -# Subtest: ipv4 - ok 1 - valid: {"v":"255.100.30.1"} - ok 2 - errors: /v: Does not match ipv4 format. - 1..2 -ok 15 - ipv4 -# Subtest: ipv6 - ok 1 - valid: {"v":"::1"} - ok 2 - errors: /v: Does not match ipv6 format. - 1..2 -ok 16 - ipv6 -# Subtest: json-pointer - ok 1 - valid: {"v":""} - ok 2 - valid: {"v":"\/foo\/bar"} - ok 3 - errors: /v: Does not match json-pointer format. - 1..3 -ok 17 - json-pointer -# Subtest: regex - ok 1 - valid: {"v":"(\\w+)"} - ok 2 - errors: /v: Does not match regex format. - 1..2 -ok 18 - regex -# Subtest: relative-json-pointer - ok 1 - valid: {"v":"0"} - ok 2 - valid: {"v":"42\#"} - ok 3 - valid: {"v":"100\/foo\/bar"} - ok 4 - errors: /v: Relative JSON Pointer must start with a non-negative-integer. - ok 5 - errors: /v: Does not match relative-json-pointer format. - 1..5 -ok 19 - relative-json-pointer -# Subtest: time - ok 1 - valid: {"v":"23:02:55.831Z"} - ok 2 - valid: {"v":"23:02:55.01z"} - ok 3 - valid: {"v":"23:02:55-12:00"} - ok 4 - valid: {"v":"23:02:55+05:00"} - ok 5 - errors: /v: Does not match time format. - ok 6 - errors: /v: Second out of range. - ok 7 - errors: /v: Minute out of range. - ok 8 - errors: /v: Hour out of range. - 1..8 -ok 20 - time -# Subtest: uri - ok 1 - errors: /v: Scheme missing. - ok 2 - errors: /v: Scheme, path or fragment are required. - ok 3 - errors: /v: Scheme must begin with a letter. - ok 4 - errors: /v: Invalid hex escape. - ok 5 - errors: /v: Hex escapes are not complete. - ok 6 - errors: /v: Path cannot not start with //. - ok 7 - valid: {"v":"http:\/\/mojolicio.us\/?x=123"} - ok 8 - valid: {"v":"\/relative-path"} - ok 9 - valid: {"v":"relative-path"} - 1..9 -ok 21 - uri -# Subtest: uri-reference - ok 1 - valid: {"v":"http:\/\/\/whatever"} - ok 2 - valid: {"v":"\/relative-path"} - ok 3 - valid: {"v":"relative-path"} - 1..3 -ok 22 - uri-reference -# Subtest: uri-template - ok 1 - valid: {"v":"http:\/\/mojolicio.us\/?x={x}"} - 1..1 -ok 23 - uri-template -# Subtest: unknown - ok 1 - valid: {"v":"whatever"} - ok 2 - unknown format cause a warning - 1..2 -ok 24 - unknown -# Subtest: uuid - ok 1 - errors: /v: Does not match uuid format. - ok 2 - valid: {"v":"5782165B-6BB6-472F-B3DD-369D707D6C72"} - 1..2 -ok 25 - uuid -1..25 -ok -t/jv-if-then-else.t .................... -ok 1 - valid: {"ifx":"foo"} -ok 2 - errors: /ifx: String is too long: 6/3. -ok 3 - valid: {"ifx":42} -ok 4 - errors: /ifx: Expected number - got array. -ok 5 - valid: ["2","4","7"] -ok 6 - errors: /0: String does not match ^[0-9]$. -ok 7 - errors: /0: String does not match ^[a-z]$. /4: String does not match ^[a-z]$. -1..7 -ok -t/jv-integer.t ......................... -ok 1 - valid: {"mynumber":1} -ok 2 - valid: {"mynumber":4} -ok 3 - valid: {"mynumber":2} -ok 4 - errors: /mynumber: 0 < minimum(1) -ok 5 - errors: /mynumber: -1 < minimum(1) -ok 6 - errors: /mynumber: 5 > maximum(4) -ok 7 - errors: /mynumber: Expected integer - got string. -ok 8 - errors: /mynumber: Not multiple of 2. -ok 9 - valid: 2 -ok 10 - errors: /: Does not match const: 2. -ok 11 - valid: {"mynumber":"2"} -ok 12 - errors: /mynumber: Expected integer - got string. -ok 13 - valid: {"mynumber":"-2"} -ok 14 - valid: "2" -ok 15 - errors: /: Does not match const: 2. -1..15 -ok -t/jv-not.t ............................. -ok 1 - valid: 12 -ok 2 - errors: /: Should not match. -1..2 -ok -t/jv-number.t .......................... -ok 1 - valid: {"mynumber":1} -ok 2 - errors: /mynumber: Expected number - got string. -ok 3 - valid: 2.1 -ok 4 - errors: /: Does not match const: 2.1. -ok 5 - valid: {"mynumber":"-0.5"} -ok 6 - errors: /mynumber: -0.6 < minimum(-0.5) -ok 7 - valid: {"mynumber":"2.7"} -ok 8 - errors: /mynumber: 2.8 > maximum(2.7) -ok 9 - valid: {"mynumber":"0.1e+1"} -ok 10 - errors: /mynumber: Expected number - got string. -ok 11 - errors: /mynumber: Expected number - got string. -ok 12 - valid: {"validNumber":2.01} -ok 13 - valid: "2.1" -ok 14 - errors: /: Does not match const: 2.1. -ok 15 - errors: /mynumber: 2.7 >= maximum(2.7) -ok 16 - errors: /mynumber: -0.5 <= minimum(-0.5) -ok 17 - errors: /mynumber: 2.7 >= maximum(2.7) -ok 18 - errors: /mynumber: -0.5 <= minimum(-0.5) -1..18 -ok -t/jv-object.t .......................... -# Subtest: basic - ok 1 - valid: {"mynumber":1} - ok 2 - errors: /: Expected object - got array. - 1..2 -ok 1 - basic -# Subtest: patternProperties - ok 1 - valid: {"number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 2 - errors: /number: Expected number - got string. - ok 3 - valid: {"number":1600,"street_name":"Pennsylvania"} - ok 4 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - ok 5 - valid: {"I_0":42,"S_25":"This is a string"} - ok 6 - errors: /S_0: Expected string - got number. - 1..6 -ok 2 - patternProperties -# Subtest: additionalProperties - ok 1 - errors: /: Properties not allowed: direction, foo. - ok 2 - valid: {"direction":"NW","number":1600,"street_name":"Pennsylvania","street_type":"Avenue"} - 1..2 -ok 3 - additionalProperties -# Subtest: required - ok 1 - errors: /street_name: Missing property. - 1..1 -ok 4 - required -# Subtest: minProperties maxProperties - ok 1 - errors: /: Not enough properties: 0/1. - ok 2 - errors: /: Not enough properties: 1/2. - ok 3 - valid: {"a":1,"b":2} - ok 4 - errors: /: Too many properties: 4/3. - 1..4 -ok 5 - minProperties maxProperties -# Subtest: dependencies - ok 1 - valid: {"name":"John Doe"} - ok 2 - valid: {"billing_address":"123 Main St","name":"John Doe"} - ok 3 - errors: /billing_address: Missing property. Dependee: credit_card. - ok 4 - valid: {"name":"John Doe"} - ok 5 - valid: {"billing_address":"123 Main St","name":"John Doe"} - ok 6 - errors: /billing_address: Missing property. - ok 7 - errors: /foo: Missing property. Dependee: bar. - ok 8 - errors: /: /propertyName/FOO /anyOf/0 Not in enum list: foo, bar, baz. /: /propertyName/FOO /anyOf/1 Not in enum list: hello. - 1..8 -ok 6 - dependencies -# Subtest: patternProperties - ok 1 - valid: {} - ok 2 - patternProperties was not added issue\#47 - 1..2 -ok 7 - patternProperties -# Subtest: propertyNames - ok 1 - errors: /: /propertyName/surname String is too long: 7/5. - ok 2 - valid: {"name":"John","surname":"Doe"} - 1..2 -ok 8 - propertyNames -# Subtest: TO_JSON - ok 1 - errors: /age: Expected integer - got string. - 1..1 -ok 9 - TO_JSON -# Subtest: const - ok 1 - valid: {"a":1} - ok 2 - errors: /: Does not match const: {"a":1}. - 1..2 -ok 10 - const -# Subtest: boolean schemas - ok 1 - valid: {"foo":"bar"} - ok 2 - valid: {"foo":"bar"} - ok 3 - valid: {"foo":"bar"} - ok 4 - valid: {"foo":"bar"} - ok 5 - valid: {"foo":"bar"} - ok 6 - valid: {"foo":"bar"} - ok 7 - valid: {"foo":"bar"} - ok 8 - valid: {"foo":"bar"} - ok 9 - valid: {"foo":"bar"} - ok 10 - valid: {"foo":"bar"} - ok 11 - valid: {"foo":"bar"} - ok 12 - valid: {"foo":"bar"} - ok 13 - errors: /foo: Should not match. - ok 14 - errors: /foo: Should not match. - ok 15 - errors: /foo: Should not match. - ok 16 - errors: /foo: Should not match. - ok 17 - errors: /foo: Should not match. - 1..17 -ok 11 - boolean schemas -1..11 -ok -t/jv-oneof.t ........................... -ok 1 - valid: "short" -ok 2 - valid: 12 -ok 3 - valid: 10 -ok 4 - valid: 9 -ok 5 - errors: /: All of the oneOf rules match. -ok 6 - errors: /: /oneOf/0 Not multiple of 5. /: /oneOf/1 Not multiple of 3. -ok 7 - errors: /: /oneOf Expected object/string - got number. -ok 8 - errors: /: /oneOf/0 Expected object - got number. /: /oneOf/1 Not multiple of 3. -ok 9 - errors: /x: Does not match date-time format. -ok 10 - valid: {"x":"2015-04-21T20:30:43.000Z"} -ok 11 - valid: {"x":null} -ok 12 - errors: /x: Expected null/number - got string. -ok 13 - errors: /: oneOf rules 0, 2 match. -ok 14 - valid: "hello" -ok 15 - errors: /: All of the oneOf rules match. -ok 16 - errors: /: /oneOf/0 Should not match. /: /oneOf/1 Should not match. -ok 17 - errors: /: All of the oneOf rules match. -ok 18 - errors: /: Expected integer/boolean - got string. -ok 19 - errors: /: /oneOf/0 Should not match. /: /oneOf/1 Not in enum list: 123, HELLO. -ok 20 - errors: /: /oneOf/0 Should not match. /: /oneOf/1 Expected integer/boolean - got string. -ok 21 - errors: /: /oneOf/0 Should not match. /: /oneOf/1 Expected integer - got string. -ok 22 - errors: /: /oneOf/0 Expected integer/boolean - got string. -ok 23 - errors: /: /oneOf/0/oneOf/0 Expected boolean - got string. /: /oneOf/0/oneOf/1 String is too long: 5/2. /: /oneOf/1 Expected integer - got string. -ok 24 - errors: /foo: /oneOf/0 Expected array - got string. /: /oneOf/1 Expected boolean - got object. -1..24 -ok -t/jv-required.t ........................ -ok 1 - valid: {"mynumber":"yay"} -ok 2 - valid: {"mynumbre":"err"} -ok 3 - errors: /mynumber: Missing property. -ok 4 - valid: {"mynumber":"yay"} -ok 5 - valid: {"mynumbre":"err"} -1..5 -ok -t/jv-string.t .......................... -ok 1 - valid: {"nick":"batman"} -ok 2 - errors: /nick: Expected string - got number. -ok 3 - valid: {"nick":"1000"} -ok 4 - errors: /nick: String is too short: 2/3. -ok 5 - errors: /nick: String is too long: 11/10. -ok 6 - String does not match -ok 7 - valid: {"nick":"Déjà vu"} -ok 8 - valid: {"nick":1000} -ok 9 - valid: {"credit_card_number":"5252525252525252"} -ok 10 - valid: "foo" -ok 11 - errors: /: Does not match const: "foo". -ok 12 - valid: "" -ok 13 - errors: /: Does not match const: "". -1..13 -ok -t/load-data.t .......................... -ok 1 - one error -ok 2 - lastName -ok 3 - required -ok 4 - TO_JSON -ok 5 - could not find age1.json -ok 6 - validate_age0 -ok 7 - validate_age0 -ok 8 - validate_age1 -ok 9 - found spec.json in main -ok 10 - required is sorted -ok 11 - schemas in store -1..11 -ok -t/load-file.t .......................... -# file:///build/reproducible-path/libjson-validator-perl-5.15+dfsg/t/spec/person.json -ok 1 - loaded from file:// -ok 2 - An object of class 'JSON::Validator::Schema' isa 'JSON::Validator::Schema' -ok 3 - got example schema -ok 4 - schema id -ok 5 - schemas in store -ok 6 - loaded from file:// again -ok 7 - schema id again -ok 8 - schemas in store again -ok 9 - cannot load no-such-file.json -ok 10 - avoid loading from app, when $ua->server->app is not present -1..10 -ok -t/load-yaml-pp.t ....................... skipped: YAML::PP not available -t/load-yaml.t .......................... -ok 1 - one error -ok 2 - lastName -ok 3 - required -ok 4 - TO_JSON -1..4 -ok -t/newline-warnings.t ................... -ok 1 - no warning emitted when ->schema() method is passed a valid JSON schema ending in newline -1..1 -ok -t/openapiv2-collection-format.t ........ -ok 1 - collectionFormat csv in path -ok 2 - collectionFormat csv0 empty string -ok 3 - collectionFormat csv0 single item -ok 4 - collectionFormat csv0 two item -ok 5 - collectionFormat csv2 single item -ok 6 - collectionFormat pipes0 empty string -ok 7 - collectionFormat pipes0 single item -ok 8 - collectionFormat pipes0 two item -ok 9 - collectionFormat pipes2 single item -ok 10 - collectionFormat ssv0 empty string -ok 11 - collectionFormat ssv0 single item -ok 12 - collectionFormat ssv0 two item -ok 13 - collectionFormat ssv2 single item -ok 14 - collectionFormat tsv0 empty string -ok 15 - collectionFormat tsv0 single item -ok 16 - collectionFormat tsv0 two item -ok 17 - collectionFormat tsv2 single item -1..17 -ok -t/openapiv2-default-values.t ........... -ok 1 - invalid id -ok 2 - default id -ok 3 - input was mutated -ok 4 - default id -1..4 -ok -t/openapiv2-discriminator.t ............ -ok 1 - invalid dog -ok 2 - valid cat -ok 3 - invalid cat -ok 4 - valid dog -ok 5 - discriminator is required -ok 6 - invalid discriminator -1..6 -ok -t/openapiv2-file.t ..................... -ok 1 - missing image -ok 2 - missing image -ok 3 - valid input -1..3 -ok -t/openapiv2-headers.t .................. -ok 1 - request header not a number -ok 2 - request header is number -ok 3 - request header is not an array -ok 4 - request header is coerced into an array -ok 5 - response header is coerced into an array -ok 6 - header is an array -ok 7 - request header as array is valid -ok 8 - request header not a boolean -ok 9 - response header not a boolean -ok 10 - request header as boolean "$str" -ok 11 - response header as boolean "$str" -ok 12 - request header as boolean "$str" -ok 13 - response header as boolean "$str" -ok 14 - request header as boolean "$str" -ok 15 - response header as boolean "$str" -ok 16 - request header as boolean "$str" -ok 17 - response header as boolean "$str" -1..17 -ok -t/openapiv2-readonly.t ................. -ok 1 - required is ignored on validate_request -ok 2 - age is required in response -ok 3 - age is read-only for request -ok 4 - age is present in response -1..4 -ok -t/openapiv2-routes.t ................... -ok 1 - sorted routes -1..1 -ok -t/openapiv3-coerce-array.t ............. -# Subtest: number to array - ok 1 - valid - 1..1 -ok 1 - number to array -# Subtest: string to array - ok 1 - valid - 1..1 -ok 2 - string to array -# Subtest: already an array - ok 1 - valid - 1..1 -ok 3 - already an array -# Subtest: parameter array schema is $ref - ok 1 - valid - 1..1 -ok 4 - parameter array schema is $ref -1..4 -ok -t/openapiv3-default-values.t ........... -ok 1 - invalid id -ok 2 - default id -ok 3 - input was mutated -ok 4 - default id -ok 5 - coerced default value -1..5 -ok -t/openapiv3-discriminator.t ............ -ok 1 - invalid dog -ok 2 - valid cat -ok 3 - invalid cat -ok 4 - valid dog -ok 5 - discriminator is required -ok 6 - invalid discriminator -1..6 -ok -t/openapiv3-nullable.t ................. -ok 1 - /nullable-data - missing name -ok 2 - /nullable-data - name is undef -ok 3 - /nullable-ref - missing name -ok 4 - /nullable-ref - name is undef -ok 5 - extra object -ok 6 - extra null -ok 7 - stuff array -ok 8 - stuff null -ok 9 - nullable inside oneOf -ok 10 - nullable string with enum -1..10 -ok -t/openapiv3-readonly-writeonly.t ....... -ok 1 - required is ignored on validate_request -ok 2 - age is read-only for request -ok 3 - age is required in response -ok 4 - age is present in response -ok 5 - birth is write-only in response -1..5 -ok -t/openapiv3-style-explode.t ............ -# Subtest: path get /array/label{id} - ok 1 - validate {"id":[3,4,5]} - ok 2 - mutated {"id":[3,4,5]} - ok 3 - validate {"id":[5]} - ok 4 - mutated {"id":[5]} - 1..4 -ok 1 - path get /array/label{id} -# Subtest: path get /array/label/explode{id} - ok 1 - validate {"id":[3,4,5]} - ok 2 - mutated {"id":[3,4,5]} - ok 3 - validate {"id":[5]} - ok 4 - mutated {"id":[5]} - 1..4 -ok 2 - path get /array/label/explode{id} -# Subtest: path get /array/matrix{id} - ok 1 - validate {"id":[3,4,5]} - ok 2 - mutated {"id":[3,4,5]} - ok 3 - validate {"id":[5]} - ok 4 - mutated {"id":[5]} - 1..4 -ok 3 - path get /array/matrix{id} -# Subtest: path get /array/matrix/explode{id} - ok 1 - validate {"id":[3,4,5]} - ok 2 - mutated {"id":[3,4,5]} - ok 3 - validate {"id":[5]} - ok 4 - mutated {"id":[5]} - 1..4 -ok 4 - path get /array/matrix/explode{id} -# Subtest: path get /array/query - ok 1 - validate {} - ok 2 - mutated {} - ok 3 - validate {"ri":"ri"} - ok 4 - mutated {"ri":"ri"} - ok 5 - validate {"ml":"ml","ri":[0]} - ok 6 - mutated {"ml":"ml","ri":[0]} - ok 7 - validate {"ml":[3,5],"ri":[0]} - ok 8 - mutated {"ml":[3,5],"ri":[0]} - ok 9 - validate {"pi":[1,2,3],"ri":[0]} - ok 10 - mutated {"pi":[1,2,3],"ri":[0]} - ok 11 - validate {"ri":[0],"sp":[2,3,4]} - ok 12 - mutated {"ri":[0],"sp":[2,3,4]} - 1..12 -ok 5 - path get /array/query -# Subtest: path get /array/simple/{id} - ok 1 - validate {} - ok 2 - mutated {} - ok 3 - validate {"id":[10]} - ok 4 - mutated {"id":[10]} - ok 5 - validate {"id":[10,20]} - ok 6 - mutated {"id":[10,20]} - 1..6 -ok 6 - path get /array/simple/{id} -# Subtest: path get /object/label{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 7 - path get /object/label{id} -# Subtest: path get /object/label/explode{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 8 - path get /object/label/explode{id} -# Subtest: path get /object/matrix{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 9 - path get /object/matrix{id} -# Subtest: path get /object/matrix/explode{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 10 - path get /object/matrix/explode{id} -# Subtest: path get /object/query - ok 1 - validate {} - ok 2 - mutated {} - ok 3 - validate {"all":{"ff":[""]},"ff":{}} - ok 4 - mutated {"all":{"ff":[""]},"ff":{}} - ok 5 - validate {"all":{"pf":""},"pf":{}} - ok 6 - mutated {"all":{"pf":""},"pf":{}} - ok 7 - validate {"all":{"sf":""},"sf":{}} - ok 8 - mutated {"all":{"sf":""},"sf":{}} - ok 9 - validate {"all":{"ff":["name,birdy,age,1"]},"ff":{"age":1,"name":"birdy"}} - ok 10 - mutated {"all":{"ff":["name,birdy,age,1"]},"ff":{"age":1,"name":"birdy"}} - ok 11 - validate {"all":{"pf":"name|birdy|age|2"},"pf":{"age":2,"name":"birdy"}} - ok 12 - mutated {"all":{"pf":"name|birdy|age|2"},"pf":{"age":2,"name":"birdy"}} - ok 13 - validate {"all":{"sf":"name birdy age 3"},"sf":{"age":3,"name":"birdy"}} - ok 14 - mutated {"all":{"sf":"name birdy age 3"},"sf":{"age":3,"name":"birdy"}} - 1..14 -ok 11 - path get /object/query -# Subtest: path get /object/query - ok 1 - validate {"all":{"do[birth-date][gte]":"1970-01-01","do[name]":"birdy","do[numbers][0]":5},"do":{"birth-date":{"gte":"1970-01-01"},"name":"birdy","numbers":[5]}} - ok 2 - mutated {"all":{"do[birth-date][gte]":"1970-01-01","do[name]":"birdy","do[numbers][0]":5},"do":{"birth-date":{"gte":"1970-01-01"},"name":"birdy","numbers":[5]}} - ok 3 - validate {"all":{"do[0][1][0]":2,"do[2][0]":4},"do":{"0":[null,[2]],"2":[4]}} - ok 4 - mutated {"all":{"do[0][1][0]":2,"do[2][0]":4},"do":{"0":[null,[2]],"2":[4]}} - ok 5 - validate {"all":{"do[numbers][0]":4,"do[numbers][1]":2},"do":{"numbers":[4,2]}} - ok 6 - mutated {"all":{"do[numbers][0]":4,"do[numbers][1]":2},"do":{"numbers":[4,2]}} - ok 7 - validate {"all":{"do[numbers][]":[3,5]},"do":{"numbers":[3,5]}} - ok 8 - mutated {"all":{"do[numbers][]":[3,5]},"do":{"numbers":[3,5]}} - ok 9 - validate {"all":{"do[numbers]":[4,6]},"do":{"numbers":[4,6]}} - ok 10 - mutated {"all":{"do[numbers]":[4,6]},"do":{"numbers":[4,6]}} - 1..10 -ok 12 - path get /object/query -# Subtest: path get /object/simple/{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 13 - path get /object/simple/{id} -# Subtest: path get /object/simple/explode/{id} - ok 1 - validate {"id":{"category":"bird","name":"birdy"}} - ok 2 - mutated {"id":{"category":"bird","name":"birdy"}} - 1..2 -ok 14 - path get /object/simple/explode/{id} -1..14 -ok -t/predictable-errors.t ................. -ok 1 - got errors in expected order -ok 2 - in scalar context got the right number of errors -ok 3 - got errors in expected order -ok 4 - in scalar context got the right number of errors -ok 5 - got errors in expected order -ok 6 - in scalar context got the right number of errors -ok 7 - got errors in expected order -ok 8 - in scalar context got the right number of errors -ok 9 - got errors in expected order -ok 10 - in scalar context got the right number of errors -ok 11 - got errors in expected order -ok 12 - in scalar context got the right number of errors -ok 13 - got errors in expected order -ok 14 - in scalar context got the right number of errors -ok 15 - got errors in expected order -ok 16 - in scalar context got the right number of errors -ok 17 - got errors in expected order -ok 18 - in scalar context got the right number of errors -ok 19 - got errors in expected order -ok 20 - in scalar context got the right number of errors -ok 21 - got errors in expected order -ok 22 - in scalar context got the right number of errors -ok 23 - got errors in expected order -ok 24 - in scalar context got the right number of errors -ok 25 - got errors in expected order -ok 26 - in scalar context got the right number of errors -ok 27 - got errors in expected order -ok 28 - in scalar context got the right number of errors -ok 29 - got errors in expected order -ok 30 - in scalar context got the right number of errors -ok 31 - got errors in expected order -ok 32 - in scalar context got the right number of errors -ok 33 - got errors in expected order -ok 34 - in scalar context got the right number of errors -ok 35 - got errors in expected order -ok 36 - in scalar context got the right number of errors -ok 37 - got errors in expected order -ok 38 - in scalar context got the right number of errors -ok 39 - got errors in expected order -ok 40 - in scalar context got the right number of errors -1..40 -ok -t/random-errors.t ...................... skipped: TEST_RANDOM_ITERATIONS=10000 -t/recursive_data_protection.t .......... -ok 1 - recursive_data_protection(1) -ok 2 - recursive_data_protection(0) -1..2 -ok -t/relative-ref.t ....................... -ok 1 - errors: /age: -1 < minimum(0) -ok 2 - errors: /age: -2 < minimum(0) -1..2 -ok -t/to-json.t ............................ -ok 1 - TO_JSON on objects -ok 2 - TO_JSON on objects inside arrays -ok 3 - input objects are not changed -1..3 -ok -Wide character in print at /usr/share/perl/5.40/Test2/Formatter/TAP.pm line 156. -Wide character in print at /usr/share/perl/5.40/Test2/Formatter/TAP.pm line 156. -Wide character in print at /usr/share/perl/5.40/Test2/Formatter/TAP.pm line 156. -Wide character in print at /usr/share/perl/5.40/Test2/Formatter/TAP.pm line 156. -t/unicode-multibyte.t .................. -ok 1 - valid: {"foo":"foo♫bar"} -ok 2 - errors: /foo: Not in enum list: foo♫bar. -ok 3 - valid: {"foo":"foo♫bar"} -ok 4 - errors: /foo: Not in enum list: foo♫bar. -ok 5 - valid: {"bar":"replacement�char"} -ok 6 - errors: /bar: Not in enum list: replacement�char. -ok 7 - errors: /bar: Not in enum list: replacement�char. -1..7 -ok -t/uri.t ................................ -# Subtest: url https - ok 1 - scheme - ok 2 - host - ok 3 - nid - ok 4 - nss - 1..4 -ok 1 - url https -# Subtest: urn uuid - ok 1 - host - ok 2 - scheme - ok 3 - nid - ok 4 - nss - ok 5 - fragment - 1..5 -ok 2 - urn uuid -# Subtest: urn jv - ok 1 - is_abs - ok 2 - host - ok 3 - scheme - ok 4 - nid - ok 5 - nss - ok 6 - fragment - ok 7 - clone host - ok 8 - clone scheme - ok 9 - clone nid - ok 10 - clone nss - ok 11 - clone fragment - ok 12 - clone to_string - 1..12 -ok 3 - urn jv -# Subtest: urn to_abs - ok 1 - is_abs - ok 2 - to_abs - ok 3 - b.json to_abs - 1..3 -ok 4 - urn to_abs -1..4 -ok -t/util-checksum-yaml-xs.t .............. -ok 1 - Sereal::Encoder was not loaded -ok 2 - data_checksum array -ok 3 - data_checksum hash field order -ok 4 - data_checksum hash not undef -ok 5 - data_checksum hash not object -ok 6 - data_checksum object not undef -ok 7 - data_checksum numeric -ok 8 - data_checksum numeric like string -1..8 -ok -t/util.t ............................... -ok 1 - E -ok 2 - data_type string -ok 3 - data_type number -ok 4 - data_type integer -ok 5 - data_type array -ok 6 - data_type other -ok 7 - data_type boolean -ok 8 - data_type null -ok 9 - data_type JSON::Validator::Error -ok 10 - is_type JSON::Validator -ok 11 - is_type Mojo::Base -ok 12 - is_type HASH -ok 13 - is_type ARRAY -ok 14 - is_type HASH -ok 15 - is_num 4.2 -ok 16 - is_num 42 -ok 17 - is_num 2 -ok 18 - is_bool -ok 19 - is_bool -ok 20 - prefix_errors -ok 21 - accepts nothing -ok 22 - form-data boundary -ok 23 - charset -ok 24 - header missing -ok 25 - exact match -ok 26 - closest accept -ok 27 - exact match with weight -ok 28 - star/star -ok 29 - schema_type integer -ok 30 - schema_type object -ok 31 - schema_type object -ok 32 - schema_type not object -ok 33 - schema_type array -ok 34 - schema_type not array -ok 35 - schema_type string -ok 36 - schema_type number -ok 37 - schema_type const -ok 38 - schema_type no idea -# Subtest: data_checksum with Sereal::Encoder - ok 1 - data_checksum array - ok 2 - data_checksum hash field order - ok 3 - data_checksum hash not undef - ok 4 - data_checksum hash not object - ok 5 - data_checksum object not undef - ok 6 - data_checksum numeric - ok 7 - data_checksum numeric like string - 1..7 -ok 39 - data_checksum with Sereal::Encoder -1..39 -ok -t/validate-id.t ........................ -ok 1 - valid: {"id":1} -ok 2 - errors: /: Properties not allowed: id. -1..2 -ok -[2026-12-06 22:59:29.11589] [1915983] [trace] [3rT6rRa-WOez] POST "/" -[2026-12-06 22:59:29.11621] [1915983] [trace] [3rT6rRa-WOez] Routing to a callback -[2026-12-06 22:59:29.11787] [1915983] [trace] [3rT6rRa-WOez] 400 Bad Request (0.001971s, 507.357/s) -[2026-12-06 22:59:29.12060] [1915983] [trace] [P7mYMXTBTAHF] POST "/" -[2026-12-06 22:59:29.12074] [1915983] [trace] [P7mYMXTBTAHF] Routing to a callback -[2026-12-06 22:59:29.12163] [1915983] [trace] [P7mYMXTBTAHF] 200 OK (0.001021s, 979.432/s) -[2026-12-06 22:59:29.12364] [1915983] [trace] [GPMf1_06Kb54] POST "/" -[2026-12-06 22:59:29.12377] [1915983] [trace] [GPMf1_06Kb54] Routing to a callback -[2026-12-06 22:59:29.12469] [1915983] [trace] [GPMf1_06Kb54] 200 OK (0.001037s, 964.320/s) -[2026-12-06 22:59:29.12652] [1915983] [trace] [0aE3MUcjyckr] POST "/" -[2026-12-06 22:59:29.12665] [1915983] [trace] [0aE3MUcjyckr] Routing to a callback -[2026-12-06 22:59:29.12752] [1915983] [trace] [0aE3MUcjyckr] 400 Bad Request (0.000988s, 1012.146/s) -t/validate-recursive.t ................. -ok 1 - POST / -ok 2 - 400 Bad Request -ok 3 - content is similar -ok 4 - POST / -ok 5 - 200 OK -ok 6 - POST / -ok 7 - 200 OK -ok 8 - POST / -ok 9 - 400 Bad Request -ok 10 - exact match for JSON Pointer "/0/path" -1..10 -ok -All tests successful. -Files=61, Tests=698, 24 wallclock secs ( 0.22 usr 0.13 sys + 20.10 cusr 2.91 csys = 23.36 CPU) -Result: PASS -make[2]: Leaving directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' -make[1]: Leaving directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' +dh: command-omitted: The call to "debian/rules override_dh_auto_test" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_prep dh_installdirs dh_auto_install --destdir=debian/libjson-validator-perl/ - make -j16 install DESTDIR=/build/reproducible-path/libjson-validator-perl-5.15\+dfsg/debian/libjson-validator-perl AM_UPDATE_INFO_DIR=no PREFIX=/usr + make -j12 install DESTDIR=/build/reproducible-path/libjson-validator-perl-5.15\+dfsg/debian/libjson-validator-perl AM_UPDATE_INFO_DIR=no PREFIX=/usr make[1]: Entering directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' Manifying 14 pod documents Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator.pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Error.pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Store.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Formats.pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/URI.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Joi.pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/URI.pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Store.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema.pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Error.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Util.pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft4.pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft7.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft6.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/OpenAPIv3.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/OpenAPIv2.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft201909.pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft4.pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/perl5/JSON/Validator/Schema/Draft7.pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::OpenAPIv2.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Formats.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Error.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft4.3pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Joi.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Formats.3pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Store.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft201909.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft4.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft6.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::OpenAPIv3.3pm -Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator.3pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::URI.3pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Util.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft6.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Error.3pm Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft7.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::Draft201909.3pm +Installing /build/reproducible-path/libjson-validator-perl-5.15+dfsg/debian/libjson-validator-perl/usr/share/man/man3/JSON::Validator::Schema::OpenAPIv3.3pm make[1]: Leaving directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' debian/rules execute_after_dh_install make[1]: Entering directory '/build/reproducible-path/libjson-validator-perl-5.15+dfsg' @@ -2190,12 +563,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2735420/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1910266 and its subdirectories -I: Current time: Sun Dec 6 10:59:33 -12 2026 -I: pbuilder-time-stamp: 1796597973 +I: removing directory /srv/workspace/pbuilder/2735420 and its subdirectories +I: Current time: Tue Nov 4 06:37:12 +14 2025 +I: pbuilder-time-stamp: 1762187832