PATH=C:\cpanfly-5.20-64\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\instantclient_11_2-64;C:\cpanfly-5.20-64\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\instantclient_11_2-64;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files (x86)\CMake\bin Start 2017-03-11T00:02:31 ActivePerl-2003 CPAN-2.10 PATH=C:/CPANFL~1.20-/var/libs/bin;C:\CPANFL~1.20-\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\INSTAN~1;C:\CPANFL~1.20-\var\megalib\bin;C:\Perl64-5.20\site\bin;C:\Perl64-5.20\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\INSTAN~1;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WINDOW~1\v1.0\;C:\PROGRA~1\Git\cmd;C:\PROGRA~2\CMake\bin Reading 'C:\cpanfly-5.20-64\var\cpan\Metadata' Database was generated on Fri, 10 Mar 2017 05:29:02 GMT Checksum for C:\cpanfly-5.20-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\App-SahUtils-0.44.tar.gz ok App-SahUtils-0.44/ App-SahUtils-0.44/README App-SahUtils-0.44/dist.ini App-SahUtils-0.44/Makefile.PL App-SahUtils-0.44/META.yml App-SahUtils-0.44/t/ App-SahUtils-0.44/t/author-pod-syntax.t App-SahUtils-0.44/t/release-rinci.t App-SahUtils-0.44/t/00-compile.t App-SahUtils-0.44/t/author-pod-coverage.t App-SahUtils-0.44/bin/ App-SahUtils-0.44/bin/show-sah-schema-module App-SahUtils-0.44/bin/get-sah-type App-SahUtils-0.44/bin/is-sah-builtin-type App-SahUtils-0.44/bin/show-sah-coerce-module App-SahUtils-0.44/bin/is-sah-simple-type App-SahUtils-0.44/bin/is-sah-collection-builtin-type App-SahUtils-0.44/bin/is-sah-numeric-builtin-type App-SahUtils-0.44/bin/is-sah-collection-type App-SahUtils-0.44/bin/sah-to-human App-SahUtils-0.44/bin/list-sah-schema-modules App-SahUtils-0.44/bin/list-sah-schemas-modules App-SahUtils-0.44/bin/list-sah-coerce-rule-modules App-SahUtils-0.44/bin/list-sah-type-modules App-SahUtils-0.44/bin/format-with-sah App-SahUtils-0.44/bin/coerce-with-sah App-SahUtils-0.44/bin/resolve-sah-schema App-SahUtils-0.44/bin/is-sah-type App-SahUtils-0.44/bin/validate-with-sah App-SahUtils-0.44/bin/is-sah-ref-builtin-type App-SahUtils-0.44/bin/list-sah-clauses App-SahUtils-0.44/bin/normalize-sah-schema App-SahUtils-0.44/bin/is-sah-simple-builtin-type App-SahUtils-0.44/bin/is-sah-ref-type App-SahUtils-0.44/bin/is-sah-numeric-type App-SahUtils-0.44/weaver.ini App-SahUtils-0.44/META.json App-SahUtils-0.44/MANIFEST App-SahUtils-0.44/lib/ App-SahUtils-0.44/lib/App/ App-SahUtils-0.44/lib/App/SahUtils.pm App-SahUtils-0.44/LICENSE App-SahUtils-0.44/Changes Configuring P/PE/PERLANCAR/App-SahUtils-0.44.tar.gz with Makefile.PL >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Warning: prerequisite Data::Sah 0.84 not found. We have 0.57. Warning: prerequisite Perinci::CmdLine::Base 1.72 not found. We have 1.32. Checking if your kit is complete... Looks good Have \cpanfl~1.20-\var\megalib Want \perl64-5.20\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for App::SahUtils Writing MYMETA.yml and MYMETA.json PERLANCAR/App-SahUtils-0.44.tar.gz C:\Perl64-5.20\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/App-SahUtils-0.44.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/App-SahUtils-0.44.tar.gz ---- Perinci::CmdLine::Base [requires] Data::Sah [requires] Running test for module 'Perinci::CmdLine::Base' Checksum for C:\cpanfly-5.20-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-CmdLine-Lite-1.72.tar.gz ok Perinci-CmdLine-Lite-1.72/ Perinci-CmdLine-Lite-1.72/README Perinci-CmdLine-Lite-1.72/dist.ini Perinci-CmdLine-Lite-1.72/Makefile.PL Perinci-CmdLine-Lite-1.72/META.yml Perinci-CmdLine-Lite-1.72/t/ Perinci-CmdLine-Lite-1.72/t/author-pod-syntax.t Perinci-CmdLine-Lite-1.72/t/00-compile.t Perinci-CmdLine-Lite-1.72/t/suite.t Perinci-CmdLine-Lite-1.72/t/author-pod-coverage.t Perinci-CmdLine-Lite-1.72/weaver.ini Perinci-CmdLine-Lite-1.72/META.json Perinci-CmdLine-Lite-1.72/share/ Perinci-CmdLine-Lite-1.72/share/templates/ Perinci-CmdLine-Lite-1.72/share/templates/description.txt Perinci-CmdLine-Lite-1.72/share/templates/synopsis.txt Perinci-CmdLine-Lite-1.72/MANIFEST Perinci-CmdLine-Lite-1.72/lib/ Perinci-CmdLine-Lite-1.72/lib/Perinci/ Perinci-CmdLine-Lite-1.72/lib/Perinci/CmdLine/ Perinci-CmdLine-Lite-1.72/lib/Perinci/CmdLine/Base.pm Perinci-CmdLine-Lite-1.72/lib/Perinci/CmdLine/Lite.pm Perinci-CmdLine-Lite-1.72/LICENSE Perinci-CmdLine-Lite-1.72/devscripts/ Perinci-CmdLine-Lite-1.72/devscripts/bench-startup Perinci-CmdLine-Lite-1.72/Changes Configuring P/PE/PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz with Makefile.PL >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Warning: prerequisite Data::Sah 0.84 not found. We have 0.57. Warning: prerequisite Perinci::CmdLine::Util::Config 1.71 not found. We have 1.32. Checking if your kit is complete... Looks good Have \cpanfl~1.20-\var\megalib Want \perl64-5.20\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::CmdLine::Lite Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz C:\Perl64-5.20\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz ---- Perinci::CmdLine::Util::Config [requires] Data::Sah [requires] Running test for module 'Perinci::CmdLine::Util::Config' Checksum for C:\cpanfly-5.20-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-CmdLine-Util-Config-1.71.tar.gz ok Perinci-CmdLine-Util-Config-1.71/ Perinci-CmdLine-Util-Config-1.71/README Perinci-CmdLine-Util-Config-1.71/dist.ini Perinci-CmdLine-Util-Config-1.71/Makefile.PL Perinci-CmdLine-Util-Config-1.71/META.yml Perinci-CmdLine-Util-Config-1.71/t/ Perinci-CmdLine-Util-Config-1.71/t/author-pod-syntax.t Perinci-CmdLine-Util-Config-1.71/t/release-rinci.t Perinci-CmdLine-Util-Config-1.71/t/00-compile.t Perinci-CmdLine-Util-Config-1.71/t/author-pod-coverage.t Perinci-CmdLine-Util-Config-1.71/weaver.ini Perinci-CmdLine-Util-Config-1.71/META.json Perinci-CmdLine-Util-Config-1.71/MANIFEST Perinci-CmdLine-Util-Config-1.71/lib/ Perinci-CmdLine-Util-Config-1.71/lib/Perinci/ Perinci-CmdLine-Util-Config-1.71/lib/Perinci/CmdLine/ Perinci-CmdLine-Util-Config-1.71/lib/Perinci/CmdLine/Util/ Perinci-CmdLine-Util-Config-1.71/lib/Perinci/CmdLine/Util/Config.pm Perinci-CmdLine-Util-Config-1.71/LICENSE Perinci-CmdLine-Util-Config-1.71/Changes Configuring P/PE/PERLANCAR/Perinci-CmdLine-Util-Config-1.71.tar.gz with Makefile.PL >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~1.20-\var\megalib Want \perl64-5.20\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::CmdLine::Util::Config Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-CmdLine-Util-Config-1.71.tar.gz C:\Perl64-5.20\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-CmdLine-Util-Config-1.71.tar.gz >>> dmake cp lib/Perinci/CmdLine/Util/Config.pm blib\lib\Perinci\CmdLine\Util\Config.pm PERLANCAR/Perinci-CmdLine-Util-Config-1.71.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl64-5.20\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..1 ok 1 - Perinci/CmdLine/Util/Config.pm loaded ok ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author t/release-rinci.t ........ skipped: these tests are for release candidate testing All tests successful. Files=4, Tests=1, 1 wallclock secs ( 0.05 usr + 0.03 sys = 0.08 CPU) Result: PASS PERLANCAR/Perinci-CmdLine-Util-Config-1.71.tar.gz dmake test TEST_VERBOSE=1 -- OK PPD for Perinci-CmdLine-Util-Config-1.71 already made Running test for module 'Data::Sah' Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'get' Checksum for C:\cpanfly-5.20-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Data-Sah-0.87.tar.gz ok Data-Sah-0.87/ Data-Sah-0.87/README Data-Sah-0.87/lib/ Data-Sah-0.87/lib/Test/ Data-Sah-0.87/lib/Test/Data/ Data-Sah-0.87/lib/Test/Data/Sah/ Data-Sah-0.87/lib/Test/Data/Sah/Human.pm Data-Sah-0.87/lib/Test/Data/Sah/Perl.pm Data-Sah-0.87/lib/Test/Data/Sah.pm Data-Sah-0.87/lib/Data/ Data-Sah-0.87/lib/Data/Sah/ Data-Sah-0.87/lib/Data/Sah/Human.pm Data-Sah-0.87/lib/Data/Sah/Lang/ Data-Sah-0.87/lib/Data/Sah/Lang/zh_CN.pm Data-Sah-0.87/lib/Data/Sah/Lang/fr_FR.pm Data-Sah-0.87/lib/Data/Sah/Lang/id_ID.pm Data-Sah-0.87/lib/Data/Sah/Type/ Data-Sah-0.87/lib/Data/Sah/Type/undef.pm Data-Sah-0.87/lib/Data/Sah/Type/hash.pm Data-Sah-0.87/lib/Data/Sah/Type/re.pm Data-Sah-0.87/lib/Data/Sah/Type/cistr.pm Data-Sah-0.87/lib/Data/Sah/Type/any.pm Data-Sah-0.87/lib/Data/Sah/Type/code.pm Data-Sah-0.87/lib/Data/Sah/Type/bool.pm Data-Sah-0.87/lib/Data/Sah/Type/all.pm Data-Sah-0.87/lib/Data/Sah/Type/num.pm Data-Sah-0.87/lib/Data/Sah/Type/Comparable.pm Data-Sah-0.87/lib/Data/Sah/Type/duration.pm Data-Sah-0.87/lib/Data/Sah/Type/array.pm Data-Sah-0.87/lib/Data/Sah/Type/Sortable.pm Data-Sah-0.87/lib/Data/Sah/Type/BaseType.pm Data-Sah-0.87/lib/Data/Sah/Type/date.pm Data-Sah-0.87/lib/Data/Sah/Type/str.pm Data-Sah-0.87/lib/Data/Sah/Type/obj.pm Data-Sah-0.87/lib/Data/Sah/Type/buf.pm Data-Sah-0.87/lib/Data/Sah/Type/HasElems.pm Data-Sah-0.87/lib/Data/Sah/Type/float.pm Data-Sah-0.87/lib/Data/Sah/Type/int.pm Data-Sah-0.87/lib/Data/Sah/Compiler.pm Data-Sah-0.87/lib/Data/Sah/Manual/ Data-Sah-0.87/lib/Data/Sah/Manual/Contributing.pod Data-Sah-0.87/lib/Data/Sah/Manual/Extending.pod Data-Sah-0.87/lib/Data/Sah/Manual/Developer.pod Data-Sah-0.87/lib/Data/Sah/Manual/ParamsValidating.pod Data-Sah-0.87/lib/Data/Sah/Manual.pod Data-Sah-0.87/lib/Data/Sah/Util/ Data-Sah-0.87/lib/Data/Sah/Util/Role.pm Data-Sah-0.87/lib/Data/Sah/Util/Type/ Data-Sah-0.87/lib/Data/Sah/Util/Type/Date.pm Data-Sah-0.87/lib/Data/Sah/Util/Func.pm Data-Sah-0.87/lib/Data/Sah/Util/TypeX.pm Data-Sah-0.87/lib/Data/Sah/Compiler/ Data-Sah-0.87/lib/Data/Sah/Compiler/human/ Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/ Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/undef.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/hash.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/re.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/cistr.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/any.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/code.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/bool.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/all.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/num.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/Comparable.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/duration.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/array.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/Sortable.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/date.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/str.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/obj.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/buf.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/HasElems.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/float.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH/int.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human/TH.pm Data-Sah-0.87/lib/Data/Sah/Compiler/human.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl.pm Data-Sah-0.87/lib/Data/Sah/Compiler/Prog/ Data-Sah-0.87/lib/Data/Sah/Compiler/Prog/TH/ Data-Sah-0.87/lib/Data/Sah/Compiler/Prog/TH/any.pm Data-Sah-0.87/lib/Data/Sah/Compiler/Prog/TH/all.pm Data-Sah-0.87/lib/Data/Sah/Compiler/Prog/TH.pm Data-Sah-0.87/lib/Data/Sah/Compiler/Prog.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/ Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/ Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/undef.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/hash.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/re.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/cistr.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/any.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/code.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/bool.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/all.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/num.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/duration.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/array.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/date.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/str.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/obj.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/buf.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/float.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH/int.pm Data-Sah-0.87/lib/Data/Sah/Compiler/perl/TH.pm Data-Sah-0.87/lib/Data/Sah/Compiler/TH.pm Data-Sah-0.87/lib/Data/Sah/Compiler/TextResultRole.pm Data-Sah-0.87/lib/Data/Sah/Lang.pm Data-Sah-0.87/lib/Data/Sah.pm Data-Sah-0.87/Makefile.PL Data-Sah-0.87/Changes Data-Sah-0.87/dist.ini Data-Sah-0.87/LICENSE Data-Sah-0.87/t/ Data-Sah-0.87/t/00-compile.t Data-Sah-0.87/t/01-basics.t Data-Sah-0.87/t/perl-type-re.t Data-Sah-0.87/t/spectest-perl.t Data-Sah-0.87/t/util-type-date.t Data-Sah-0.87/t/human-id_ID.t Data-Sah-0.87/t/perl-type-date.t Data-Sah-0.87/t/human-en_US.t Data-Sah-0.87/t/perl-type-obj.t Data-Sah-0.87/t/perl-type-code.t Data-Sah-0.87/t/spectest-human.t- Data-Sah-0.87/t/perl-type-str.t Data-Sah-0.87/t/perl-type-float.t Data-Sah-0.87/t/perl-type-duration.t Data-Sah-0.87/t/author-pod-syntax.t Data-Sah-0.87/t/perl-type-bool.t Data-Sah-0.87/t/author-pod-coverage.t Data-Sah-0.87/t/perl-misc.t Data-Sah-0.87/weaver.ini Data-Sah-0.87/MANIFEST Data-Sah-0.87/META.json Data-Sah-0.87/META.yml Data-Sah-0.87/devscripts/ Data-Sah-0.87/devscripts/list-missing-translations Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'prepare' Configuring P/PE/PERLANCAR/Data-Sah-0.87.tar.gz with Makefile.PL >>> C:\Perl64-5.20\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~1.20-\var\megalib Want \perl64-5.20\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Data::Sah Writing MYMETA.yml and MYMETA.json PERLANCAR/Data-Sah-0.87.tar.gz C:\Perl64-5.20\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Data-Sah-0.87.tar.gz Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'make' >>> dmake cp lib/Data/Sah/Compiler/human/TH.pm blib\lib\Data\Sah\Compiler\human\TH.pm cp lib/Data/Sah/Compiler/Prog/TH/all.pm blib\lib\Data\Sah\Compiler\Prog\TH\all.pm cp lib/Data/Sah/Compiler/human/TH/array.pm blib\lib\Data\Sah\Compiler\human\TH\array.pm cp lib/Data/Sah/Compiler/human/TH/all.pm blib\lib\Data\Sah\Compiler\human\TH\all.pm cp lib/Data/Sah/Compiler/TextResultRole.pm blib\lib\Data\Sah\Compiler\TextResultRole.pm cp lib/Data/Sah/Compiler/human/TH/any.pm blib\lib\Data\Sah\Compiler\human\TH\any.pm cp lib/Data/Sah/Compiler/Prog/TH/any.pm blib\lib\Data\Sah\Compiler\Prog\TH\any.pm cp lib/Data/Sah/Compiler/Prog.pm blib\lib\Data\Sah\Compiler\Prog.pm cp lib/Data/Sah.pm blib\lib\Data\Sah.pm cp lib/Data/Sah/Compiler/human.pm blib\lib\Data\Sah\Compiler\human.pm cp lib/Data/Sah/Compiler/human/TH/Sortable.pm blib\lib\Data\Sah\Compiler\human\TH\Sortable.pm cp lib/Data/Sah/Compiler/human/TH/Comparable.pm blib\lib\Data\Sah\Compiler\human\TH\Comparable.pm cp lib/Data/Sah/Compiler.pm blib\lib\Data\Sah\Compiler.pm cp lib/Data/Sah/Compiler/human/TH/HasElems.pm blib\lib\Data\Sah\Compiler\human\TH\HasElems.pm cp lib/Data/Sah/Compiler/TH.pm blib\lib\Data\Sah\Compiler\TH.pm cp lib/Data/Sah/Compiler/Prog/TH.pm blib\lib\Data\Sah\Compiler\Prog\TH.pm cp lib/Data/Sah/Compiler/human/TH/re.pm blib\lib\Data\Sah\Compiler\human\TH\re.pm cp lib/Data/Sah/Compiler/perl.pm blib\lib\Data\Sah\Compiler\perl.pm cp lib/Data/Sah/Compiler/human/TH/float.pm blib\lib\Data\Sah\Compiler\human\TH\float.pm cp lib/Data/Sah/Compiler/human/TH/bool.pm blib\lib\Data\Sah\Compiler\human\TH\bool.pm cp lib/Data/Sah/Compiler/human/TH/cistr.pm blib\lib\Data\Sah\Compiler\human\TH\cistr.pm cp lib/Data/Sah/Compiler/human/TH/int.pm blib\lib\Data\Sah\Compiler\human\TH\int.pm cp lib/Data/Sah/Compiler/human/TH/str.pm blib\lib\Data\Sah\Compiler\human\TH\str.pm cp lib/Data/Sah/Compiler/human/TH/buf.pm blib\lib\Data\Sah\Compiler\human\TH\buf.pm cp lib/Data/Sah/Compiler/human/TH/num.pm blib\lib\Data\Sah\Compiler\human\TH\num.pm cp lib/Data/Sah/Compiler/human/TH/undef.pm blib\lib\Data\Sah\Compiler\human\TH\undef.pm cp lib/Data/Sah/Compiler/human/TH/date.pm blib\lib\Data\Sah\Compiler\human\TH\date.pm cp lib/Data/Sah/Compiler/human/TH/code.pm blib\lib\Data\Sah\Compiler\human\TH\code.pm cp lib/Data/Sah/Compiler/human/TH/hash.pm blib\lib\Data\Sah\Compiler\human\TH\hash.pm cp lib/Data/Sah/Compiler/human/TH/obj.pm blib\lib\Data\Sah\Compiler\human\TH\obj.pm cp lib/Data/Sah/Compiler/human/TH/duration.pm blib\lib\Data\Sah\Compiler\human\TH\duration.pm cp lib/Data/Sah/Compiler/perl/TH/array.pm blib\lib\Data\Sah\Compiler\perl\TH\array.pm cp lib/Data/Sah/Compiler/perl/TH/num.pm blib\lib\Data\Sah\Compiler\perl\TH\num.pm cp lib/Data/Sah/Compiler/perl/TH/buf.pm blib\lib\Data\Sah\Compiler\perl\TH\buf.pm cp lib/Data/Sah/Compiler/perl/TH/cistr.pm blib\lib\Data\Sah\Compiler\perl\TH\cistr.pm cp lib/Data/Sah/Compiler/perl/TH/obj.pm blib\lib\Data\Sah\Compiler\perl\TH\obj.pm cp lib/Data/Sah/Compiler/perl/TH/duration.pm blib\lib\Data\Sah\Compiler\perl\TH\duration.pm cp lib/Data/Sah/Compiler/perl/TH/float.pm blib\lib\Data\Sah\Compiler\perl\TH\float.pm cp lib/Data/Sah/Compiler/perl/TH/code.pm blib\lib\Data\Sah\Compiler\perl\TH\code.pm cp lib/Data/Sah/Compiler/perl/TH/any.pm blib\lib\Data\Sah\Compiler\perl\TH\any.pm cp lib/Data/Sah/Compiler/perl/TH/all.pm blib\lib\Data\Sah\Compiler\perl\TH\all.pm cp lib/Data/Sah/Compiler/perl/TH/hash.pm blib\lib\Data\Sah\Compiler\perl\TH\hash.pm cp lib/Data/Sah/Compiler/perl/TH/date.pm blib\lib\Data\Sah\Compiler\perl\TH\date.pm cp lib/Data/Sah/Compiler/perl/TH/bool.pm blib\lib\Data\Sah\Compiler\perl\TH\bool.pm cp lib/Data/Sah/Compiler/perl/TH.pm blib\lib\Data\Sah\Compiler\perl\TH.pm cp lib/Data/Sah/Compiler/perl/TH/int.pm blib\lib\Data\Sah\Compiler\perl\TH\int.pm cp lib/Data/Sah/Compiler/perl/TH/re.pm blib\lib\Data\Sah\Compiler\perl\TH\re.pm cp lib/Data/Sah/Type/Comparable.pm blib\lib\Data\Sah\Type\Comparable.pm cp lib/Data/Sah/Type/HasElems.pm blib\lib\Data\Sah\Type\HasElems.pm cp lib/Data/Sah/Type/Sortable.pm blib\lib\Data\Sah\Type\Sortable.pm cp lib/Data/Sah/Type/BaseType.pm blib\lib\Data\Sah\Type\BaseType.pm cp lib/Data/Sah/Lang/fr_FR.pm blib\lib\Data\Sah\Lang\fr_FR.pm cp lib/Data/Sah/Lang.pm blib\lib\Data\Sah\Lang.pm cp lib/Data/Sah/Type/all.pm blib\lib\Data\Sah\Type\all.pm cp lib/Data/Sah/Lang/zh_CN.pm blib\lib\Data\Sah\Lang\zh_CN.pm cp lib/Data/Sah/Manual/ParamsValidating.pod blib\lib\Data\Sah\Manual\ParamsValidating.pod cp lib/Data/Sah/Manual/Extending.pod blib\lib\Data\Sah\Manual\Extending.pod cp lib/Data/Sah/Manual/Developer.pod blib\lib\Data\Sah\Manual\Developer.pod cp lib/Data/Sah/Lang/id_ID.pm blib\lib\Data\Sah\Lang\id_ID.pm cp lib/Data/Sah/Human.pm blib\lib\Data\Sah\Human.pm cp lib/Data/Sah/Manual.pod blib\lib\Data\Sah\Manual.pod cp lib/Data/Sah/Compiler/perl/TH/undef.pm blib\lib\Data\Sah\Compiler\perl\TH\undef.pm cp lib/Data/Sah/Manual/Contributing.pod blib\lib\Data\Sah\Manual\Contributing.pod cp lib/Data/Sah/Compiler/perl/TH/str.pm blib\lib\Data\Sah\Compiler\perl\TH\str.pm cp lib/Data/Sah/Type/date.pm blib\lib\Data\Sah\Type\date.pm cp lib/Data/Sah/Type/duration.pm blib\lib\Data\Sah\Type\duration.pm cp lib/Data/Sah/Type/any.pm blib\lib\Data\Sah\Type\any.pm cp lib/Data/Sah/Type/bool.pm blib\lib\Data\Sah\Type\bool.pm cp lib/Data/Sah/Type/hash.pm blib\lib\Data\Sah\Type\hash.pm cp lib/Data/Sah/Type/array.pm blib\lib\Data\Sah\Type\array.pm cp lib/Data/Sah/Util/Type/Date.pm blib\lib\Data\Sah\Util\Type\Date.pm cp lib/Data/Sah/Type/str.pm blib\lib\Data\Sah\Type\str.pm cp lib/Data/Sah/Util/Func.pm blib\lib\Data\Sah\Util\Func.pm cp lib/Data/Sah/Type/buf.pm blib\lib\Data\Sah\Type\buf.pm cp lib/Data/Sah/Type/float.pm blib\lib\Data\Sah\Type\float.pm cp lib/Data/Sah/Type/obj.pm blib\lib\Data\Sah\Type\obj.pm cp lib/Data/Sah/Type/int.pm blib\lib\Data\Sah\Type\int.pm cp lib/Data/Sah/Type/undef.pm blib\lib\Data\Sah\Type\undef.pm cp lib/Data/Sah/Util/TypeX.pm blib\lib\Data\Sah\Util\TypeX.pm cp lib/Data/Sah/Type/re.pm blib\lib\Data\Sah\Type\re.pm cp lib/Data/Sah/Type/num.pm blib\lib\Data\Sah\Type\num.pm cp lib/Data/Sah/Type/cistr.pm blib\lib\Data\Sah\Type\cistr.pm cp lib/Data/Sah/Type/code.pm blib\lib\Data\Sah\Type\code.pm cp lib/Data/Sah/Util/Role.pm blib\lib\Data\Sah\Util\Role.pm cp lib/Test/Data/Sah.pm blib\lib\Test\Data\Sah.pm cp lib/Test/Data/Sah/Human.pm blib\lib\Test\Data\Sah\Human.pm cp lib/Test/Data/Sah/Perl.pm blib\lib\Test\Data\Sah\Perl.pm PERLANCAR/Data-Sah-0.87.tar.gz dmake -- OK Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl64-5.20\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..82 ok 1 - Data/Sah.pm loaded ok ok 2 - Data/Sah/Compiler.pm loaded ok ok 3 - Data/Sah/Compiler/Prog.pm loaded ok ok 4 - Data/Sah/Compiler/Prog/TH.pm loaded ok ok 5 - Data/Sah/Compiler/Prog/TH/all.pm loaded ok ok 6 - Data/Sah/Compiler/Prog/TH/any.pm loaded ok ok 7 - Data/Sah/Compiler/TH.pm loaded ok ok 8 - Data/Sah/Compiler/TextResultRole.pm loaded ok ok 9 - Data/Sah/Compiler/human.pm loaded ok ok 10 - Data/Sah/Compiler/human/TH.pm loaded ok ok 11 - Data/Sah/Compiler/human/TH/Comparable.pm loaded ok ok 12 - Data/Sah/Compiler/human/TH/HasElems.pm loaded ok ok 13 - Data/Sah/Compiler/human/TH/Sortable.pm loaded ok ok 14 - Data/Sah/Compiler/human/TH/all.pm loaded ok ok 15 - Data/Sah/Compiler/human/TH/any.pm loaded ok ok 16 - Data/Sah/Compiler/human/TH/array.pm loaded ok ok 17 - Data/Sah/Compiler/human/TH/bool.pm loaded ok ok 18 - Data/Sah/Compiler/human/TH/buf.pm loaded ok ok 19 - Data/Sah/Compiler/human/TH/cistr.pm loaded ok ok 20 - Data/Sah/Compiler/human/TH/code.pm loaded ok ok 21 - Data/Sah/Compiler/human/TH/date.pm loaded ok ok 22 - Data/Sah/Compiler/human/TH/duration.pm loaded ok ok 23 - Data/Sah/Compiler/human/TH/float.pm loaded ok ok 24 - Data/Sah/Compiler/human/TH/hash.pm loaded ok ok 25 - Data/Sah/Compiler/human/TH/int.pm loaded ok ok 26 - Data/Sah/Compiler/human/TH/num.pm loaded ok ok 27 - Data/Sah/Compiler/human/TH/obj.pm loaded ok ok 28 - Data/Sah/Compiler/human/TH/re.pm loaded ok ok 29 - Data/Sah/Compiler/human/TH/str.pm loaded ok ok 30 - Data/Sah/Compiler/human/TH/undef.pm loaded ok ok 31 - Data/Sah/Compiler/perl.pm loaded ok ok 32 - Data/Sah/Compiler/perl/TH.pm loaded ok ok 33 - Data/Sah/Compiler/perl/TH/all.pm loaded ok ok 34 - Data/Sah/Compiler/perl/TH/any.pm loaded ok ok 35 - Data/Sah/Compiler/perl/TH/array.pm loaded ok ok 36 - Data/Sah/Compiler/perl/TH/bool.pm loaded ok ok 37 - Data/Sah/Compiler/perl/TH/buf.pm loaded ok ok 38 - Data/Sah/Compiler/perl/TH/cistr.pm loaded ok ok 39 - Data/Sah/Compiler/perl/TH/code.pm loaded ok ok 40 - Data/Sah/Compiler/perl/TH/date.pm loaded ok ok 41 - Data/Sah/Compiler/perl/TH/duration.pm loaded ok ok 42 - Data/Sah/Compiler/perl/TH/float.pm loaded ok ok 43 - Data/Sah/Compiler/perl/TH/hash.pm loaded ok ok 44 - Data/Sah/Compiler/perl/TH/int.pm loaded ok ok 45 - Data/Sah/Compiler/perl/TH/num.pm loaded ok ok 46 - Data/Sah/Compiler/perl/TH/obj.pm loaded ok ok 47 - Data/Sah/Compiler/perl/TH/re.pm loaded ok ok 48 - Data/Sah/Compiler/perl/TH/str.pm loaded ok ok 49 - Data/Sah/Compiler/perl/TH/undef.pm loaded ok ok 50 - Data/Sah/Human.pm loaded ok ok 51 - Data/Sah/Lang.pm loaded ok ok 52 - Data/Sah/Lang/fr_FR.pm loaded ok ok 53 - Data/Sah/Lang/id_ID.pm loaded ok ok 54 - Data/Sah/Lang/zh_CN.pm loaded ok ok 55 - Data/Sah/Type/BaseType.pm loaded ok ok 56 - Data/Sah/Type/Comparable.pm loaded ok ok 57 - Data/Sah/Type/HasElems.pm loaded ok ok 58 - Data/Sah/Type/Sortable.pm loaded ok ok 59 - Data/Sah/Type/all.pm loaded ok ok 60 - Data/Sah/Type/any.pm loaded ok ok 61 - Data/Sah/Type/array.pm loaded ok ok 62 - Data/Sah/Type/bool.pm loaded ok ok 63 - Data/Sah/Type/buf.pm loaded ok ok 64 - Data/Sah/Type/cistr.pm loaded ok ok 65 - Data/Sah/Type/code.pm loaded ok ok 66 - Data/Sah/Type/date.pm loaded ok ok 67 - Data/Sah/Type/duration.pm loaded ok ok 68 - Data/Sah/Type/float.pm loaded ok ok 69 - Data/Sah/Type/hash.pm loaded ok ok 70 - Data/Sah/Type/int.pm loaded ok ok 71 - Data/Sah/Type/num.pm loaded ok ok 72 - Data/Sah/Type/obj.pm loaded ok ok 73 - Data/Sah/Type/re.pm loaded ok ok 74 - Data/Sah/Type/str.pm loaded ok ok 75 - Data/Sah/Type/undef.pm loaded ok ok 76 - Data/Sah/Util/Func.pm loaded ok ok 77 - Data/Sah/Util/Role.pm loaded ok ok 78 - Data/Sah/Util/Type/Date.pm loaded ok ok 79 - Data/Sah/Util/TypeX.pm loaded ok ok 80 - Test/Data/Sah.pm loaded ok ok 81 - Test/Data/Sah/Human.pm loaded ok ok 82 - Test/Data/Sah/Perl.pm loaded ok ok t/01-basics.t ............ # Subtest: compile() # Subtest: on_unhandled_clause option ok 1 - die (default) ok 2 - warn ok 3 - ignore 1..3 ok 1 - on_unhandled_clause option # Subtest: on_unhandled_attr option ok 1 - die (default) ok 2 - warn ok 3 - ignore 1..3 ok 2 - on_unhandled_attr option # Subtest: skip_clause option ok 1 - skip_clause in gen_validator() 1 ok 2 - skip_clause in gen_validator() 2 ok 3 - skip_clause in gen_validator() 3 1..3 ok 3 - skip_clause option 1..3 ok 1 - compile() 1..1 ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. t/human-en_US.t .......... # Subtest: integer ok 1 - result 1..1 ok 1 - integer # Subtest: integer ok 1 - result 1..1 ok 2 - integer # Subtest: integer, must be at least 1 ok 1 - result 1..1 ok 3 - integer, must be at least 1 # Subtest: integer, must be at least 1, must be at most 10 ok 1 - result 1..1 ok 4 - integer, must be at least 1, must be at most 10 # Subtest: integer, must be divisible by 2 and 5 ok 1 - result 1..1 ok 5 - integer, must be divisible by 2 and 5 # Subtest: integer, must be divisible by all of [2,3,5] ok 1 - result 1..1 ok 6 - integer, must be divisible by all of [2,3,5] # Subtest: integer, must be divisible by 2 or 5 ok 1 - result 1..1 ok 7 - integer, must be divisible by 2 or 5 # Subtest: integer, must be divisible by one of [2,3,5] ok 1 - result 1..1 ok 8 - integer, must be divisible by one of [2,3,5] # Subtest: integer, must not be divisible by 5 ok 1 - result 1..1 ok 9 - integer, must not be divisible by 5 # Subtest: array of integers ok 1 - result 1..1 ok 10 - array of integers # Subtest: (?^x:array .+ each\sarray\selement\smust\sbe: .+ # integer .+ at\sleast\s1) ok 1 - result 1..1 ok 11 - (?^x:array .+ each\sarray\selement\smust\sbe: .+ # integer .+ at\sleast\s1) # Subtest: array, 1st element must be: integer ok 1 - result 1..1 ok 12 - array, 1st element must be: integer # Subtest: (?^x:must\sbe\sall\sof\sthe\sfollowing: .+ # integer.+even .+ # integer.+divisible\sby\s5 .+ # ) ok 1 - result 1..1 ok 13 - (?^x:must\sbe\sall\sof\sthe\sfollowing: .+ # integer.+even .+ # integer.+divisible\sby\s5 .+ # ) # Subtest: hash, field f must be: decimal number, field i must be: (integer, must be at least 0) ok 1 - result 1..1 ok 14 - hash, field f must be: decimal number, field i must be: (integer, must be at least 0) 1..14 ok Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. t/human-id_ID.t .......... # Subtest: bilangan bulat ok 1 - result 1..1 ok 1 - bilangan bulat # Subtest: larik, elemen ke-1 harus: bilangan bulat ok 1 - result 1..1 ok 2 - larik, elemen ke-1 harus: bilangan bulat 1..2 ok Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Failed test 'data "NaN" should pass schema ["float", "is_nan", 1]' # at C:\cpanfly-5.20-64\var\tmp\cpan_build\Data-Sah-0.87-GBUWDQ\blib\lib/Test/Data/Sah.pm line 46. # schema compilation result: # ----begin generated code---- # # skip if undef # (!defined($data) ? 1 : # # (# check type 'float' # ($data =~ /\A(?:[+-]?(?:0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?|((?i)\s*nan\s*)|((?i)\s*[+-]?inf(inity)?)\s*)\z/) # # && # # (# clause: is_nan # (lc($data+0) eq "nan")))) # ----end generated code---- # that code should return true when fed $data="NaN" but instead returns "" Can't locate Data/Dumper.pm in @INC (you may need to install the Data::Dumper module) (@INC contains: CODE(0x32e8258)) at C:/cpanfly-5.20-64/var/megalib/Test/Builder.pm line 1779. # Child (compile option: no_modules) exited without calling finalize() # Failed test 'compile option: no_modules' # at C:/cpanfly-5.20-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 255 just after 2. t/perl-misc.t ............ ok 1 - data [{ a => [] }, { a => [] }] should pass schema [ # "array", # { of => ["hash", "keys", { a => ["array", "of", "any"] }] }, # ] # Subtest: compile option: no_modules ok 1 - data -5 should pass schema ["int"] ok 2 - data 1.1 should not pass schema ["int"] ok 3 - data -5 should pass schema ["float"] ok 4 - data 1.1 should pass schema ["float"] ok 5 - data "2e-10" should pass schema ["float"] ok 6 - data "NaN" should pass schema ["float"] ok 7 - data "NaNx" should not pass schema ["float"] ok 8 - data "Inf" should pass schema ["float"] ok 9 - data "-inf" should pass schema ["float"] ok 10 - data "info" should not pass schema ["float"] ok 11 - data -5 should pass schema ["num"] ok 12 - data 1.1 should pass schema ["num"] ok 13 - data "2e-10" should pass schema ["num"] ok 14 - data "NaN" should pass schema ["num"] ok 15 - data "NaNx" should not pass schema ["num"] ok 16 - data "Inf" should pass schema ["num"] ok 17 - data "-inf" should pass schema ["num"] ok 18 - data "info" should not pass schema ["num"] not ok 19 - data "NaN" should pass schema ["float", "is_nan", 1] not ok 2 - compile option: no_modules Dubious, test returned 255 (wstat 65280, 0xff00) Failed 1/2 subtests t/perl-type-bool.t ....... ok 1 - data "" should pass schema ["bool*", "is_true", 0] ok 2 - data "a" should pass schema ["bool*", "is_true", 1] ok 3 - data 0.1 should pass schema ["bool*", "is_true", 1] 1..3 ok t/perl-type-code.t ....... ok 1 - data "a" should not pass schema ["code"] ok 2 - data sub { ... } should pass schema ["code"] 1..2 ok t/perl-type-date.t ....... ok 1 - data "2014-01-25" should pass schema ["date"] ok 2 - data "2014-01-25T23:59:59Z" should pass schema ["date"] ok 3 - data "2014-02-30" should not pass schema ["date"] ok 4 - data "2014-01-25T23:59:70Z" should not pass schema ["date"] ok 5 - data "x" should not pass schema ["date"] ok 6 - data 100000000 should pass schema ["date"] ok 7 - data 100000 should pass schema ["date"] ok 8 - data bless({ # formatter => undef, # local_c => { # day => 11, # day_of_quarter => 70, # day_of_week => 6, # day_of_year => 70, # hour => 8, # minute => 3, # month => 3, # quarter => 1, # second => 17, # year => 2017, # }, # local_rd_days => 736399, # local_rd_secs => 28997, # locale => bless({ # am_pm_abbreviated => ["AM", "PM"], # available_formats => { # d => "d", # E => "ccc", # Ed => "d E", # EHm => "E HH:mm", # Ehm => "E h:mm a", # EHms => "E HH:mm:ss", # Ehms => "E h:mm:ss a", # Gy => "y G", # GyMMM => "MMM y G", # GyMMMd => "MMM d, y G", # GyMMMEd => "E, MMM d, y G", # h => "h a", # H => "HH", # Hm => "HH:mm", # hm => "h:mm a", # hms => "h:mm:ss a", # Hms => "HH:mm:ss", # hmsv => "h:mm:ss a v", # Hmsv => "HH:mm:ss v", # hmv => "h:mm a v", # Hmv => "HH:mm v", # M => "L", # Md => "M/d", # MEd => "E, M/d", # MMM => "LLL", # MMMd => "MMM d", # MMMEd => "E, MMM d", # MMMMd => "MMMM d", # MMMMW => "'week' W 'of' MMMM", # ms => "mm:ss", # y => "y", # yM => "M/y", # yMd => "M/d/y", # yMEd => "E, M/d/y", # yMMM => "MMM y", # yMMMd => "MMM d, y", # yMMMEd => "E, MMM d, y", # yMMMM => "MMMM y", # yQQQ => "QQQ y", # yQQQQ => "QQQQ y", # yw => "'week' w 'of' y", # }, # code => "en-US", # date_format_full => "EEEE, MMMM d, y", # date_format_long => "MMMM d, y", # date_format_medium => "MMM d, y", # date_format_short => "M/d/yy", # datetime_format_full => "{1} 'at' {0}", # datetime_format_long => "{1} 'at' {0}", # datetime_format_medium => "{1}, {0}", # datetime_format_short => "{1}, {0}", # day_format_abbreviated => ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], # day_format_narrow => ["M", "T", "W", "T", "F", "S", "S"], # day_format_wide => [ # "Monday", # "Tuesday", # "Wednesday", # "Thursday", # "Friday", # "Saturday", # "Sunday", # ], # day_stand_alone_abbreviated => ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], # day_stand_alone_narrow => ["M", "T", "W", "T", "F", "S", "S"], # day_stand_alone_wide => [ # "Monday", # "Tuesday", # "Wednesday", # "Thursday", # "Friday", # "Saturday", # "Sunday", # ], # default_date_format_length => "medium", # default_time_format_length => "medium", # era_abbreviated => ["BC", "AD"], # era_narrow => ["B", "A"], # era_wide => ["Before Christ", "Anno Domini"], # first_day_of_week => 7, # glibc_date_1_format => "%a %b %e %H:%M:%S %Z %Y", # glibc_date_format => "%m/%d/%Y", # glibc_datetime_format => "%a %d %b %Y %r %Z", # glibc_time_12_format => "%I:%M:%S %p", # glibc_time_format => "%r", # language => "English", # month_format_abbreviated => [ # "Jan", # "Feb", # "Mar", # "Apr", # "May", # "Jun", # "Jul", # "Aug", # "Sep", # "Oct", # "Nov", # "Dec", # ], # month_format_narrow => ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], # month_format_wide => [ # "January", # "February", # "March", # "April", # "May", # "June", # "July", # "August", # "September", # "October", # "November", # "December", # ], # month_stand_alone_abbreviated => [ # "Jan", # "Feb", # "Mar", # "Apr", # "May", # "Jun", # "Jul", # "Aug", # "Sep", # "Oct", # "Nov", # "Dec", # ], # month_stand_alone_narrow => ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], # month_stand_alone_wide => [ # "January", # "February", # "March", # "April", # "May", # "June", # "July", # "August", # "September", # "October", # "November", # "December", # ], # name => "English United States", # native_language => "English", # native_name => "English United States", # native_script => undef, # native_territory => "United States", # native_variant => undef, # quarter_format_abbreviated => ["Q1" .. "Q4"], # quarter_format_narrow => [1 .. 4], # quarter_format_wide => ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], # quarter_stand_alone_abbreviated => ["Q1" .. "Q4"], # quarter_stand_alone_narrow => [1 .. 4], # quarter_stand_alone_wide => ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"], # script => undef, # territory => "United States", # time_format_full => "h:mm:ss a zzzz", # time_format_long => "h:mm:ss a z", # time_format_medium => "h:mm:ss a", # time_format_short => "h:mm a", # variant => undef, # version => "30.0.3", # }, "DateTime::Locale::FromData"), # offset_modifier => 0, # rd_nanosecs => 0, # tz => bless({ name => "UTC" }, "DateTime::TimeZone::UTC"), # utc_c => { epoch => 1489219397 }, # utc_rd_days => 736399, # utc_rd_secs => 28997, # utc_year => 2018, # }, "DateTime") should pass schema ["date"] 1..8 ok t/perl-type-duration.t ... ok 1 - data "P1Y2M" should pass schema ["duration"] ok 2 - data "2 days 13 hours" should pass schema ["duration"] ok 3 - data "2 xxx" should not pass schema ["duration"] ok 4 - data 1 should pass schema ["duration"] ok 5 - data 864000 should pass schema ["duration"] ok 6 - data "x" should not pass schema ["duration"] ok 7 - data "1Y2M" should not pass schema ["duration"] ok 8 - data bless({ # days => 0, # end_of_month => "wrap", # minutes => 0, # months => 14, # nanoseconds => 0, # seconds => 0, # }, "DateTime::Duration") should pass schema ["duration"] 1..8 ok t/perl-type-float.t ...... ok 1 - data 1 should not pass schema ["float", "is_nan", 1] ok 2 - data "Inf" should not pass schema ["float", "is_nan", 1] ok 3 - data "NaN" should pass schema ["float", "is_nan", 1] ok 4 - data 1 should not pass schema ["float", "is_inf", 1] ok 5 - data "NaN" should not pass schema ["float", "is_inf", 1] ok 6 - data "-Inf" should pass schema ["float", "is_inf", 1] ok 7 - data "Inf" should pass schema ["float", "is_inf", 1] ok 8 - data 1 should not pass schema ["float", "is_pos_inf", 1] ok 9 - data "NaN" should not pass schema ["float", "is_pos_inf", 1] ok 10 - data "-Inf" should not pass schema ["float", "is_pos_inf", 1] ok 11 - data "Inf" should pass schema ["float", "is_pos_inf", 1] ok 12 - data 1 should not pass schema ["float", "is_neg_inf", 1] ok 13 - data "NaN" should not pass schema ["float", "is_neg_inf", 1] ok 14 - data "-Inf" should pass schema ["float", "is_neg_inf", 1] ok 15 - data "Inf" should not pass schema ["float", "is_neg_inf", 1] 1..15 ok t/perl-type-obj.t ........ ok 1 - data "" should not pass schema ["obj*"] ok 2 - data [] should not pass schema ["obj*"] ok 3 - data {} should not pass schema ["obj*"] ok 4 - data bless({}, "Data::Sah") should pass schema ["obj*"] ok 5 - data bless({}, "Data::Sah") should pass schema ["obj*", "isa", "Exporter"] ok 6 - data bless({}, "Data::Sah") should not pass schema ["obj*", "isa", "Foo"] ok 7 - data bless({}, "Data::Sah") should pass schema ["obj*", "!isa", "Foo"] ok 8 - data bless({}, "Data::Sah") should pass schema ["obj*", "can", "get_compiler"] ok 9 - data bless({}, "Data::Sah") should pass schema ["obj*", "can&", ["get_compiler", "gen_validator"]] ok 10 - data bless({}, "Data::Sah") should not pass schema ["obj*", "can&", ["get_compiler", "foo"]] ok 11 - data bless({}, "Data::Sah") should pass schema ["obj*", "can|", ["get_compiler", "foo"]] 1..11 ok t/perl-type-re.t ......... ok 1 - data "" should pass schema ["re*"] ok 2 - data "x" should pass schema ["re*"] ok 3 - data qr// should pass schema ["re*"] ok 4 - data "(" should not pass schema ["re*"] ok 5 - data [] should not pass schema ["re*"] ok 6 - data {} should not pass schema ["re*"] 1..6 ok t/perl-type-str.t ........ ok 1 - data "a" should not pass schema ["str*", "match", qr|/|] ok 2 - data "a/" should pass schema ["str*", "match", qr|/|] 1..2 ok # Loading 10-type-all.json ... Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Loading 10-type-any.json ... Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Loading 10-type-array.json ... Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Skipping test (tags=clause:check_each_index, type, type:array) array0117: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:array) array0118: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:array) array0119: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:array) array0120: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:array) array0121: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:array) array0122: exists: clause exists not yet implemented Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Skipping test (tags=prop:len, type, type:array) array0129: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:array) array0130: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:array) array0131: prop:elems: properties are not yet implemented Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Loading 10-type-bool.json ... # Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0113: !between (nok): currently failing # Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0114: !between (ok): currently failing # Skipping test (tags=clause:between, op, op:not, type, type:bool) bool0115: between.op=not (nok): currently failing # Skipping test (tags=clause:between, op, op:not, type, type:bool) bool0116: between.op=not (ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0117: between& (no items): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0118: between& (ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0119: between& (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0120: between& (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0121: between& (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0123: between.op=and (ok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0124: between.op=and (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0125: between.op=and (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0126: between.op=and (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0127: between| (no items): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0128: between| (ok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0129: between| (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0130: between| (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0131: between| (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0132: between.op=or (no items): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0133: between.op=or (ok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0134: between.op=or (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0135: between.op=or (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0136: between.op=or (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0137: between.op=none (empty items): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0138: between.op=none (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0139: between.op=none (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0140: between.op=none (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0141: between.op=none (ok + ok): currently failing # Loading 10-type-buf.json ... # Skipping test (tags=clause:check_each_index, type, type:buf) buf0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:buf) buf0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:buf) buf0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:buf) buf0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:buf) buf0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:buf) buf0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:buf) buf0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:buf) buf0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:buf) buf0176: prop:elems: properties are not yet implemented # Loading 10-type-cistr.json ... # Skipping test (tags=clause:check_each_index, type, type:cistr) cistr0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:cistr) cistr0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:cistr) cistr0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:cistr) cistr0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:cistr) cistr0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:cistr) cistr0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:cistr) cistr0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:cistr) cistr0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:cistr) cistr0176: prop:elems: properties are not yet implemented # Loading 10-type-float.json ... # Loading 10-type-hash.json ... # Skipping test (tags=clause:check_each_index, type, type:hash) hash0121: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_key, type, type:hash) hash0122: check_each_key: clause check_each_key not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:hash) hash0123: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:check_each_value, type, type:hash) hash0124: check_each_value: clause check_each_value not yet implemented # Skipping test (tags=clause:uniq, type, type:hash) hash0125: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:hash) hash0126: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:hash) hash0127: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:hash) hash0128: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:hash) hash0133: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:hash) hash0134: prop:indices: properties are not yet implemented # Skipping test (tags=prop:keys, type, type:hash) hash0135: prop:keys: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:hash) hash0136: prop:elems: properties are not yet implemented # Skipping test (tags=prop:values, type, type:hash) hash0137: prop:values: properties are not yet implemented Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. Coercion rule module 'Data::Sah::Coerce::perl::array::str_comma_sep' is still at metadata version 1, will not be used at C:/cpanfly-5.20-64/var/megalib/Data/Sah/CoerceCommon.pm line 219. # Skipping test (tags=prop:keys, type, type:hash) hash0263: prop:keys: properties are not yet implemented # Skipping test (tags=prop:values, type, type:hash) hash0264: prop:values: properties are not yet implemented # Loading 10-type-int.json ... # Loading 10-type-num.json ... # Loading 10-type-obj.json ... # Skipping test (tags=prop:meths, type, type:obj) obj0003: prop:meths (nok): properties are not yet implemented # Skipping test (tags=prop:attrs, type, type:obj) obj0004: prop:attrs (nok): properties are not yet implemented # Loading 10-type-str.json ... # Skipping test (tags=clause:check_each_index, type, type:str) str0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:str) str0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:str) str0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:str) str0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:str) str0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:str) str0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:str) str0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:str) str0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:str) str0176: prop:elems: properties are not yet implemented # Loading 10-type-undef.json ... t/spectest-perl.t ........ # Subtest: 10-type-all.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 3, # 'name' => 'all0001: of (nok + nok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0001: of (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:all) all0001: of (nok + nok) # { # 'input' => 2, # 'name' => 'all0002: of (ok + nok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0002: of (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:all) all0002: of (ok + nok) # { # 'input' => 5, # 'name' => 'all0003: of (nok + ok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0003: of (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:all) all0003: of (nok + ok) # { # 'input' => 10, # 'name' => 'all0004: of (ok + ok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:all) all0004: of (ok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:all) all0004: of (ok + ok) ok 5 1..5 ok 1 - 10-type-all.json # Subtest: 10-type-any.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 3, # 'name' => 'any0001: of (nok + nok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:any) any0001: of (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:any) any0001: of (nok + nok) # { # 'errors' => 2, # 'input' => [ # [] # ], # 'name' => 'any0002: of (nok + nok 2)', # 'schema' => [ # 'any', # 'of', # [ # 'str', # [ # 'array', # 'of', # 'str' # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:any) any0002: of (nok + nok 2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:any) any0002: of (nok + nok 2) # { # 'input' => 2, # 'name' => 'any0003: of (ok + nok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0003: of (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:any) any0003: of (ok + nok) # { # 'input' => 5, # 'name' => 'any0004: of (nok + ok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0004: of (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:any) any0004: of (nok + ok) # { # 'input' => 10, # 'name' => 'any0005: of (ok + ok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0005: of (ok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:any) any0005: of (ok + ok) ok 6 1..6 ok 2 - 10-type-any.json # Subtest: 10-type-array.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => [], # 'name' => 'array0001: type check: must accept []', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0001: type check: must accept [] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:array) array0001: type check: must accept [] # { # 'input' => [ # 1, # 'a' # ], # 'name' => 'array0002: type check: must accept [1,"a"]', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0002: type check: must accept [1,"a"] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:array) array0002: type check: must accept [1,"a"] # { # 'input' => [ # [] # ], # 'name' => 'array0003: type check: must accept [[]]', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0003: type check: must accept [[]] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:array) array0003: type check: must accept [[]] # { # 'input' => 1, # 'name' => 'array0004: type check: must reject 1', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0004: type check: must reject 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:array) array0004: type check: must reject 1 # { # 'input' => 'a', # 'name' => 'array0005: type check: must reject a', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:array) array0005: type check: must reject a # { # 'input' => {}, # 'name' => 'array0006: type check: must reject {}', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:array) array0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'array0007: must accept undefined value', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:array) array0007: must accept undefined value # { # 'input' => undef, # 'name' => 'array0008: defhash_v', # 'schema' => [ # 'array', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:array) array0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:array) array0008: defhash_v # { # 'input' => undef, # 'name' => 'array0009: v', # 'schema' => [ # 'array', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:array) array0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:array) array0009: v # { # 'input' => undef, # 'name' => 'array0010: c', # 'schema' => [ # 'array', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:array) array0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:array) array0010: c # { # 'input' => undef, # 'name' => 'array0011: default_lang', # 'schema' => [ # 'array', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:array) array0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:array) array0011: default_lang # { # 'input' => undef, # 'name' => 'array0012: name', # 'schema' => [ # 'array', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:array) array0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:array) array0012: name # { # 'input' => undef, # 'name' => 'array0013: summary', # 'schema' => [ # 'array', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:array) array0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:array) array0013: summary # { # 'input' => undef, # 'name' => 'array0014: description', # 'schema' => [ # 'array', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:array) array0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:array) array0014: description # { # 'input' => undef, # 'name' => 'array0015: tags', # 'schema' => [ # 'array', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:array) array0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:array) array0015: tags # { # 'input' => undef, # 'name' => 'array0016: req=0 must accept undefined value', # 'schema' => [ # 'array', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:array) array0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:array) array0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'array0017: req=1 must reject undefined value', # 'schema' => [ # 'array', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:array) array0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:array) array0017: req=1 must reject undefined value # { # 'input' => [ # 1 # ], # 'name' => 'array0018: forbidden=0 must accept defined value', # 'schema' => [ # 'array', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:array) array0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:array) array0018: forbidden=0 must accept defined value # { # 'input' => [ # 1 # ], # 'name' => 'array0019: forbidden=1 must reject defined value', # 'schema' => [ # 'array', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:array) array0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:array) array0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'array0020: default: must accept valid default []', # 'schema' => [ # 'array*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:array) array0020: default: must accept valid default [] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:array) array0020: default: must accept valid default [] # { # 'input' => undef, # 'name' => 'array0021: default: must reject invalid default a', # 'schema' => [ # 'array*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:array) array0021: default: must reject invalid default a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:array) array0021: default: must reject invalid default a # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0022: clause (dies, unknown clause)', # 'schema' => [ # 'array*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:array) array0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:array) array0022: clause (dies, unknown clause) # { # 'input' => [ # 1 # ], # 'name' => 'array0023: clause (ok)', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 0 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:array) array0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:array) array0023: clause (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 0 # ], # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:array) array0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:array) array0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0025: clause (nok)', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:array) array0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:array) array0025: clause (nok) # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0026: clset (dies, unknown clause)', # 'schema' => [ # 'array*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:array) array0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:array) array0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0027: clset (dies, unknown attr)', # 'schema' => [ # 'array*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:array) array0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:array) array0027: clset (dies, unknown attr) # { # 'input' => [ # 1 # ], # 'name' => 'array0028: clset (empty = ok)', # 'schema' => [ # 'array*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:array) array0028: clset (empty = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'array*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:array) array0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:array) array0029: clset (ignored clause/attr = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0030: clset (ok + ok = ok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:array) array0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:array) array0030: clset (ok + ok = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'array*', # 'clset', # { # 'min_len' => 0 # }, # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:array) array0031: clset (ok) + clause nok = nok # { # 'input' => [ # 1 # ], # 'name' => 'array0032: clset (ok + nok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:array) array0032: clset (ok + nok = nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0033: clset (nok + ok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:array) array0033: clset (nok + ok = nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0034: clset (nok + nok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:array) array0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'array0035: ok', # 'schema' => [ # 'array', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:array) array0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:array) array0035: ok # { # 'input' => undef, # 'name' => 'array0036: ok + op not (nok)', # 'schema' => [ # 'array', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:array) array0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:array) array0036: ok + op not (nok) # { # 'input' => [], # 'name' => 'array0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'array', # 'is', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:array) array0037: .err_level=error (clause=is, ok) # { # 'input' => [ # 0 # ], # 'name' => 'array0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'array', # 'is', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:array) array0038: .err_level=error (clause=is, nok) # { # 'input' => [], # 'name' => 'array0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'array', # 'is', # [], # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:array) array0039: .err_level=warn (clause=is, ok) # { # 'input' => [ # 0 # ], # 'name' => 'array0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'array*', # 'is', # [], # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:array) array0040: .err_level=warn (clause=is, nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0041: is: must accept same value', # 'schema' => [ # 'array', # 'is', # [ # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:array) array0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:array) array0041: is: must accept same value # { # 'input' => [ # 1 # ], # 'name' => 'array0042: is: must reject different value', # 'schema' => [ # 'array', # 'is', # [ # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:array) array0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:array) array0042: is: must reject different value # { # 'input' => [ # 1 # ], # 'name' => 'array0043: !is (nok)', # 'schema' => [ # 'array', # '!is', # [ # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:array) array0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0043: !is (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0044: !is (ok)', # 'schema' => [ # 'array', # '!is', # [ # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:array) array0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0044: !is (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0045: is.op=not (nok)', # 'schema' => [ # 'array', # 'is', # [ # 1 # ], # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:array) array0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:array) array0045: is.op=not (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0046: is.op=not (ok)', # 'schema' => [ # 'array', # 'is', # [ # 2 # ], # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:array) array0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:array) array0046: is.op=not (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0047: is& (no items)', # 'schema' => [ # 'array', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0047: is& (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0048: is& (ok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 1 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0048: is& (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0049: is& (nok + ok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 2 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0050: is& (ok + nok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0051: is& (nok + nok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 2 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0051: is& (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0052: is.op=and (no items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:array) array0052: is.op=and (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0053: is.op=and (ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:array) array0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0054: is.op=and (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:array) array0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0055: is.op=and (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:array) array0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0056: is.op=and (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:array) array0056: is.op=and (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0057: is| (no items)', # 'schema' => [ # 'array', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0057: is| (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0058: is| (ok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 1 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0058: is| (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0059: is| (nok + ok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 2 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0059: is| (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0060: is| (ok + nok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0061: is| (nok + nok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 2 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0061: is| (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0062: is.op=or (no items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:array) array0062: is.op=or (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0063: is.op=or (ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:array) array0063: is.op=or (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0064: is.op=or (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:array) array0064: is.op=or (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0065: is.op=or (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:array) array0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0066: is.op=or (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:array) array0066: is.op=or (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0067: is.op=none (empty items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:array) array0067: is.op=none (empty items) # { # 'input' => [ # 1 # ], # 'name' => 'array0068: is.op=none (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:array) array0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0069: is.op=none (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:array) array0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0070: is.op=none (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:array) array0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0071: is.op=none (ok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:array) array0071: is.op=none (ok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0072: in: must accept valid choices', # 'schema' => [ # 'array', # 'in', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:array) array0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:array) array0072: in: must accept valid choices # { # 'input' => [ # 1 # ], # 'name' => 'array0073: in: must reject empty choices', # 'schema' => [ # 'array', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:array) array0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:array) array0073: in: must reject empty choices # { # 'input' => [ # 1 # ], # 'name' => 'array0074: !in (nok)', # 'schema' => [ # 'array', # '!in', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:array) array0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0074: !in (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0075: !in (ok)', # 'schema' => [ # 'array', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:array) array0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0075: !in (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0076: in.op=not (nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:array) array0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:array) array0076: in.op=not (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0077: in.op=not (ok)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:array) array0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:array) array0077: in.op=not (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0078: in& (no items)', # 'schema' => [ # 'array', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0078: in& (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0079: in& (ok)', # 'schema' => [ # 'array', # 'in&', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0079: in& (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0080: in& (nok + ok)', # 'schema' => [ # 'array', # 'in&', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0081: in& (ok + nok)', # 'schema' => [ # 'array', # 'in&', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0082: in& (nok + nok)', # 'schema' => [ # 'array', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0082: in& (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0083: in.op=and (no items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:array) array0083: in.op=and (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0084: in.op=and (ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:array) array0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0085: in.op=and (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:array) array0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0086: in.op=and (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:array) array0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0087: in.op=and (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:array) array0087: in.op=and (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0088: in| (no items)', # 'schema' => [ # 'array', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0088: in| (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0089: in| (ok)', # 'schema' => [ # 'array', # 'in|', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0089: in| (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0090: in| (nok + ok)', # 'schema' => [ # 'array', # 'in|', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0090: in| (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0091: in| (ok + nok)', # 'schema' => [ # 'array', # 'in|', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0092: in| (nok + nok)', # 'schema' => [ # 'array', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0092: in| (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0093: in.op=or (no items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:array) array0093: in.op=or (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0094: in.op=or (ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:array) array0094: in.op=or (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0095: in.op=or (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:array) array0095: in.op=or (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0096: in.op=or (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:array) array0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0097: in.op=or (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:array) array0097: in.op=or (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0098: in.op=none (empty items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:array) array0098: in.op=none (empty items) # { # 'input' => [ # 1 # ], # 'name' => 'array0099: in.op=none (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:array) array0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0100: in.op=none (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:array) array0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0101: in.op=none (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:array) array0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0102: in.op=none (ok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:array) array0102: in.op=none (ok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0103: len (ok)', # 'schema' => [ # 'array', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:array) array0103: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:len, type, type:array) array0103: len (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0104: len (nok)', # 'schema' => [ # 'array', # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:array) array0104: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:len, type, type:array) array0104: len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0105: min_len (ok)', # 'schema' => [ # 'array', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:array) array0105: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min_len, type, type:array) array0105: min_len (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0106: min_len (nok)', # 'schema' => [ # 'array', # 'min_len', # 2 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:array) array0106: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min_len, type, type:array) array0106: min_len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0107: max_len (ok)', # 'schema' => [ # 'array', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:array) array0107: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:max_len, type, type:array) array0107: max_len (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0108: max_len (nok)', # 'schema' => [ # 'array', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:array) array0108: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:max_len, type, type:array) array0108: max_len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0109: len_between (ok)', # 'schema' => [ # 'array', # 'len_between', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:array) array0109: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:len_between, type, type:array) array0109: len_between (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0110: len_between (nok)', # 'schema' => [ # 'array', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:array) array0110: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:len_between, type, type:array) array0110: len_between (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0111: each_index (ok)', # 'schema' => [ # 'array', # 'each_index', # [ # 'int', # 'max', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:array) array0111: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:each_index, type, type:array) array0111: each_index (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0112: each_index (nok)', # 'schema' => [ # 'array', # 'each_index', # [ # 'int', # 'xmax', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:array) array0112: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:each_index, type, type:array) array0112: each_index (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0113: each_elem (ok)', # 'schema' => [ # 'array', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:array) array0113: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:each_elem, type, type:array) array0113: each_elem (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0114: each_elem (nok)', # 'schema' => [ # 'array', # 'each_elem', # 'int' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:array) array0114: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:each_elem, type, type:array) array0114: each_elem (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0115: of (ok)', # 'schema' => [ # 'array', # 'of', # 'float' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:of' # ], # 'valid' => 1 # } # Subtest: (tags=clause:of, type, type:array) array0115: of (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:of, type, type:array) array0115: of (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0116: of (nok)', # 'schema' => [ # 'array', # 'of', # 'int' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:of' # ], # 'valid' => 0 # } # Subtest: (tags=clause:of, type, type:array) array0116: of (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:of, type, type:array) array0116: of (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0123: elems (ok)', # 'schema' => [ # 'array', # 'elems', # [ # 'int', # 'float' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0123: elems (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:elems, type, type:array) array0123: elems (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0124: elems (nok)', # 'schema' => [ # 'array', # 'elems', # [ # 'int', # 'int' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 0 # } # Subtest: (tags=clause:elems, type, type:array) array0124: elems (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:elems, type, type:array) array0124: elems (nok) # { # 'invalid_inputs' => [ # [], # [ # 3 # ] # ], # 'name' => 'array0125: has', # 'schema' => [ # 'array', # 'has', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ] # } # Subtest: (tags=clause:has, type, type:array) array0125: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 119 - (tags=clause:has, type, type:array) array0125: has # { # 'invalid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ], # 'name' => 'array0126: has + op.not', # 'schema' => [ # 'array', # '!has', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # [], # [ # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:array) array0126: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 120 - (tags=clause:has, op, op:not, opshortcut, type, type:array) array0126: has + op.not # { # 'invalid_inputs' => [ # [], # [ # 3 # ] # ], # 'name' => 'array0127: has + op.or', # 'schema' => [ # 'array', # 'has|', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:array) array0127: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 121 - (tags=clause:has, op, op:or, opshortcut, type, type:array) array0127: has + op.or # { # 'invalid_inputs' => [ # [ # 1, # 3 # ], # [], # [ # 3 # ] # ], # 'name' => 'array0128: has + op.and', # 'schema' => [ # 'array', # 'has&', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:array) array0128: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 122 - (tags=clause:has, op, op:and, opshortcut, type, type:array) array0128: has + op.and # { # 'invalid_inputs' => [ # [ # [ # 1, # 2 # ], # [ # [], # 4 # ] # ] # ], # 'name' => 'array0132: array[array[int]] (test nested loop variable in implementation)', # 'schema' => [ # 'array', # 'of', # [ # 'array', # 'of', # 'int' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:of' # ], # 'valid_inputs' => [ # [], # [ # [ # 1, # 2 # ], # [ # 3, # 4 # ] # ] # ] # } # Subtest: (tags=clause:of, type, type:array) array0132: array[array[int]] (test nested loop variable in implementation) ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - validator (rt=full) returns hash 1..5 ok 123 - (tags=clause:of, type, type:array) array0132: array[array[int]] (test nested loop variable in implementation) # { # 'input' => [ # undef, # 1 # ], # 'name' => 'array0133: elems (nok, first elem required)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 0 # } # Subtest: (tags=clause:elems, type, type:array) array0133: elems (nok, first elem required) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:elems, type, type:array) array0133: elems (nok, first elem required) # { # 'input' => [ # 1 # ], # 'name' => 'array0134: elems (ok, missing elem set to undef)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0134: elems (ok, missing elem set to undef) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:elems, type, type:array) array0134: elems (ok, missing elem set to undef) # { # 'input' => [ # 1, # undef # ], # 'name' => 'array0135: elems (ok, second elem optional)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0135: elems (ok, second elem optional) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:elems, type, type:array) array0135: elems (ok, second elem optional) # { # 'input' => [ # 1, # '1.1' # ], # 'name' => 'array0136: elems (ok 2)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0136: elems (ok 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:elems, type, type:array) array0136: elems (ok 2) # { # 'input' => [ # 1, # '1.1', # undef # ], # 'name' => 'array0137: elems (ok, extra elems ignored)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0137: elems (ok, extra elems ignored) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:elems, type, type:array) array0137: elems (ok, extra elems ignored) # { # 'input' => [ # 1, # '1.1', # 'foo' # ], # 'name' => 'array0138: elems (ok, extra elems ignored 2)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0138: elems (ok, extra elems ignored 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:elems, type, type:array) array0138: elems (ok, extra elems ignored 2) # { # 'input' => [ # 1 # ], # 'name' => 'array0139: elems (ok, create_default=0)', # 'output' => [ # 1 # ], # 'schema' => [ # 'array', # { # 'elems' => [ # 'int', # [ # 'int', # 'default', # 2 # ] # ], # 'elems.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0139: elems (ok, create_default=0) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 130 - (tags=clause:elems, type, type:array) array0139: elems (ok, create_default=0) # { # 'input' => [ # 1, # undef # ], # 'name' => 'array0140: elems (ok 2, create_default=0)', # 'output' => [ # 1, # 2 # ], # 'schema' => [ # 'array', # { # 'elems' => [ # 'int', # [ # 'int', # 'default', # 2 # ] # ], # 'elems.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0140: elems (ok 2, create_default=0) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 131 - (tags=clause:elems, type, type:array) array0140: elems (ok 2, create_default=0) ok 132 1..132 ok 3 - 10-type-array.json # Subtest: 10-type-bool.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 0, # 'name' => 'bool0001: type check: must accept 0', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:bool) bool0001: type check: must accept 0 # { # 'input' => 1, # 'name' => 'bool0002: type check: must accept 1', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0002: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:bool) bool0002: type check: must accept 1 # { # 'input' => [], # 'name' => 'bool0003: type check: must reject []', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:bool) bool0003: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:bool) bool0003: type check: must reject [] # { # 'input' => {}, # 'name' => 'bool0004: type check: must reject {}', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:bool) bool0004: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:bool) bool0004: type check: must reject {} # { # 'input' => undef, # 'name' => 'bool0005: must accept undefined value', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0005: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:bool) bool0005: must accept undefined value # { # 'input' => undef, # 'name' => 'bool0006: defhash_v', # 'schema' => [ # 'bool', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:bool) bool0006: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=clause:defhash_v, type, type:bool) bool0006: defhash_v # { # 'input' => undef, # 'name' => 'bool0007: v', # 'schema' => [ # 'bool', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:bool) bool0007: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=clause:v, type, type:bool) bool0007: v # { # 'input' => undef, # 'name' => 'bool0008: c', # 'schema' => [ # 'bool', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:bool) bool0008: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:c, type, type:bool) bool0008: c # { # 'input' => undef, # 'name' => 'bool0009: default_lang', # 'schema' => [ # 'bool', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:bool) bool0009: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:default_lang, type, type:bool) bool0009: default_lang # { # 'input' => undef, # 'name' => 'bool0010: name', # 'schema' => [ # 'bool', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:bool) bool0010: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:name, type, type:bool) bool0010: name # { # 'input' => undef, # 'name' => 'bool0011: summary', # 'schema' => [ # 'bool', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:bool) bool0011: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:summary, type, type:bool) bool0011: summary # { # 'input' => undef, # 'name' => 'bool0012: description', # 'schema' => [ # 'bool', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:bool) bool0012: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:description, type, type:bool) bool0012: description # { # 'input' => undef, # 'name' => 'bool0013: tags', # 'schema' => [ # 'bool', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:bool) bool0013: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:tags, type, type:bool) bool0013: tags # { # 'input' => undef, # 'name' => 'bool0014: req=0 must accept undefined value', # 'schema' => [ # 'bool', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:bool) bool0014: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:req, type, type:bool) bool0014: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'bool0015: req=1 must reject undefined value', # 'schema' => [ # 'bool', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:bool) bool0015: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:req, type, type:bool) bool0015: req=1 must reject undefined value # { # 'input' => 1, # 'name' => 'bool0016: forbidden=0 must accept defined value', # 'schema' => [ # 'bool', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:bool) bool0016: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:forbidden, type, type:bool) bool0016: forbidden=0 must accept defined value # { # 'input' => 1, # 'name' => 'bool0017: forbidden=1 must reject defined value', # 'schema' => [ # 'bool', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:bool) bool0017: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:forbidden, type, type:bool) bool0017: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'bool0018: default: must accept valid default 1', # 'schema' => [ # 'bool*', # 'default', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:bool) bool0018: default: must accept valid default 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:default, type, type:bool) bool0018: default: must accept valid default 1 # { # 'input' => undef, # 'name' => 'bool0019: default: must reject invalid default []', # 'schema' => [ # 'bool*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:bool) bool0019: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:default, type, type:bool) bool0019: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0020: clause (dies, unknown clause)', # 'schema' => [ # 'bool*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:bool) bool0020: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 20 - (tags=clause:clause, type, type:bool) bool0020: clause (dies, unknown clause) # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0021: clset (dies, unknown clause)', # 'schema' => [ # 'bool*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:bool) bool0021: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 21 - (tags=clause:clset, type, type:bool) bool0021: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0022: clset (dies, unknown attr)', # 'schema' => [ # 'bool*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:bool) bool0022: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 22 - (tags=clause:clset, type, type:bool) bool0022: clset (dies, unknown attr) # { # 'input' => 1, # 'name' => 'bool0023: clset (empty = ok)', # 'schema' => [ # 'bool*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0023: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=type, type:bool) bool0023: clset (empty = ok) # { # 'input' => 1, # 'name' => 'bool0024: clset (ignored clause/attr = ok)', # 'schema' => [ # 'bool*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:bool) bool0024: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clset, type, type:bool) bool0024: clset (ignored clause/attr = ok) # { # 'input' => undef, # 'name' => 'bool0025: ok', # 'schema' => [ # 'bool', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:bool) bool0025: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:ok, type, type:bool) bool0025: ok # { # 'input' => undef, # 'name' => 'bool0026: ok + op not (nok)', # 'schema' => [ # 'bool', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:bool) bool0026: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:ok, op, op:not, type, type:bool) bool0026: ok + op not (nok) # { # 'input' => 1, # 'name' => 'bool0027: .err_level=error (clause=is, ok)', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0027: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=attr, attr:err_level, type, type:bool) bool0027: .err_level=error (clause=is, ok) # { # 'input' => 0, # 'name' => 'bool0028: .err_level=error (clause=is, nok)', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0028: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=attr, attr:err_level, type, type:bool) bool0028: .err_level=error (clause=is, nok) # { # 'input' => 1, # 'name' => 'bool0029: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'bool', # 'is', # 1, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0029: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=attr, attr:err_level, type, type:bool) bool0029: .err_level=warn (clause=is, ok) # { # 'input' => 0, # 'name' => 'bool0030: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'bool*', # 'is', # 1, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0030: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=attr, attr:err_level, type, type:bool) bool0030: .err_level=warn (clause=is, nok) # { # 'input' => 0, # 'name' => 'bool0031: is: must accept same value', # 'schema' => [ # 'bool', # 'is', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:bool) bool0031: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:is, type, type:bool) bool0031: is: must accept same value # { # 'input' => 0, # 'name' => 'bool0032: is: must reject different value', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:bool) bool0032: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:is, type, type:bool) bool0032: is: must reject different value # { # 'input' => 0, # 'name' => 'bool0033: !is (nok)', # 'schema' => [ # 'bool', # '!is', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0033: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0033: !is (nok) # { # 'input' => 0, # 'name' => 'bool0034: !is (ok)', # 'schema' => [ # 'bool', # '!is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0034: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0034: !is (ok) # { # 'input' => 0, # 'name' => 'bool0035: is.op=not (nok)', # 'schema' => [ # 'bool', # 'is', # 0, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:bool) bool0035: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:is, op, op:not, type, type:bool) bool0035: is.op=not (nok) # { # 'input' => 0, # 'name' => 'bool0036: is.op=not (ok)', # 'schema' => [ # 'bool', # 'is', # 1, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:bool) bool0036: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:is, op, op:not, type, type:bool) bool0036: is.op=not (ok) # { # 'input' => 0, # 'name' => 'bool0037: is& (no items)', # 'schema' => [ # 'bool', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0037: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0037: is& (no items) # { # 'input' => 0, # 'name' => 'bool0038: is& (ok)', # 'schema' => [ # 'bool', # 'is&', # [ # 0, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0038: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0038: is& (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0039: is& (nok + ok)', # 'schema' => [ # 'bool', # 'is&', # [ # 1, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0039: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0039: is& (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0040: is& (ok + nok)', # 'schema' => [ # 'bool', # 'is&', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0040: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0040: is& (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0041: is& (nok + nok)', # 'schema' => [ # 'bool', # 'is&', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0041: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0041: is& (nok + nok) # { # 'input' => 0, # 'name' => 'bool0042: is.op=and (no items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0042: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=type, type:bool) bool0042: is.op=and (no items) # { # 'input' => 0, # 'name' => 'bool0043: is.op=and (ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0043: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:and, type, type:bool) bool0043: is.op=and (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0044: is.op=and (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0044: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:and, type, type:bool) bool0044: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0045: is.op=and (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0045: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:and, type, type:bool) bool0045: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0046: is.op=and (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0046: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:and, type, type:bool) bool0046: is.op=and (nok + nok) # { # 'input' => 0, # 'name' => 'bool0047: is| (no items)', # 'schema' => [ # 'bool', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0047: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0047: is| (no items) # { # 'input' => 0, # 'name' => 'bool0048: is| (ok)', # 'schema' => [ # 'bool', # 'is|', # [ # 0, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0048: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0048: is| (ok) # { # 'input' => 0, # 'name' => 'bool0049: is| (nok + ok)', # 'schema' => [ # 'bool', # 'is|', # [ # 1, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0049: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0049: is| (nok + ok) # { # 'input' => 0, # 'name' => 'bool0050: is| (ok + nok)', # 'schema' => [ # 'bool', # 'is|', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0050: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0050: is| (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0051: is| (nok + nok)', # 'schema' => [ # 'bool', # 'is|', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0051: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0051: is| (nok + nok) # { # 'input' => 0, # 'name' => 'bool0052: is.op=or (no items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0052: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:or, type, type:bool) bool0052: is.op=or (no items) # { # 'input' => 0, # 'name' => 'bool0053: is.op=or (ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0053: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:or, type, type:bool) bool0053: is.op=or (ok) # { # 'input' => 0, # 'name' => 'bool0054: is.op=or (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0054: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:or, type, type:bool) bool0054: is.op=or (nok + ok) # { # 'input' => 0, # 'name' => 'bool0055: is.op=or (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0055: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:or, type, type:bool) bool0055: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0056: is.op=or (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0056: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:or, type, type:bool) bool0056: is.op=or (nok + nok) # { # 'input' => 0, # 'name' => 'bool0057: is.op=none (empty items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0057: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:none, type, type:bool) bool0057: is.op=none (empty items) # { # 'input' => 0, # 'name' => 'bool0058: is.op=none (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0058: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:none, type, type:bool) bool0058: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0059: is.op=none (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0059: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:none, type, type:bool) bool0059: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0060: is.op=none (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0060: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:none, type, type:bool) bool0060: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0061: is.op=none (ok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0061: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:none, type, type:bool) bool0061: is.op=none (ok + ok) # { # 'input' => 0, # 'name' => 'bool0062: in: must accept valid choices', # 'schema' => [ # 'bool', # 'in', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:bool) bool0062: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:in, type, type:bool) bool0062: in: must accept valid choices # { # 'input' => 0, # 'name' => 'bool0063: in: must reject empty choices', # 'schema' => [ # 'bool', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:bool) bool0063: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:in, type, type:bool) bool0063: in: must reject empty choices # { # 'input' => 0, # 'name' => 'bool0064: !in (nok)', # 'schema' => [ # 'bool', # '!in', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0064: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0064: !in (nok) # { # 'input' => 0, # 'name' => 'bool0065: !in (ok)', # 'schema' => [ # 'bool', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0065: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0065: !in (ok) # { # 'input' => 0, # 'name' => 'bool0066: in.op=not (nok)', # 'schema' => [ # 'bool', # 'in', # [ # 0, # 1 # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:bool) bool0066: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:in, op, op:not, type, type:bool) bool0066: in.op=not (nok) # { # 'input' => 0, # 'name' => 'bool0067: in.op=not (ok)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:bool) bool0067: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:in, op, op:not, type, type:bool) bool0067: in.op=not (ok) # { # 'input' => 0, # 'name' => 'bool0068: in& (no items)', # 'schema' => [ # 'bool', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0068: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0068: in& (no items) # { # 'input' => 0, # 'name' => 'bool0069: in& (ok)', # 'schema' => [ # 'bool', # 'in&', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0069: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0069: in& (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0070: in& (nok + ok)', # 'schema' => [ # 'bool', # 'in&', # [ # [], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0070: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0070: in& (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0071: in& (ok + nok)', # 'schema' => [ # 'bool', # 'in&', # [ # [ # 0, # 1 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0071: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0071: in& (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0072: in& (nok + nok)', # 'schema' => [ # 'bool', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0072: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0072: in& (nok + nok) # { # 'input' => 0, # 'name' => 'bool0073: in.op=and (no items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0073: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=type, type:bool) bool0073: in.op=and (no items) # { # 'input' => 0, # 'name' => 'bool0074: in.op=and (ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0074: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:and, type, type:bool) bool0074: in.op=and (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0075: in.op=and (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0075: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:and, type, type:bool) bool0075: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0076: in.op=and (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0076: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:and, type, type:bool) bool0076: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0077: in.op=and (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0077: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:and, type, type:bool) bool0077: in.op=and (nok + nok) # { # 'input' => 0, # 'name' => 'bool0078: in| (no items)', # 'schema' => [ # 'bool', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0078: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0078: in| (no items) # { # 'input' => 0, # 'name' => 'bool0079: in| (ok)', # 'schema' => [ # 'bool', # 'in|', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0079: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0079: in| (ok) # { # 'input' => 0, # 'name' => 'bool0080: in| (nok + ok)', # 'schema' => [ # 'bool', # 'in|', # [ # [], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0080: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0080: in| (nok + ok) # { # 'input' => 0, # 'name' => 'bool0081: in| (ok + nok)', # 'schema' => [ # 'bool', # 'in|', # [ # [ # 0, # 1 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0081: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0081: in| (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0082: in| (nok + nok)', # 'schema' => [ # 'bool', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0082: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0082: in| (nok + nok) # { # 'input' => 0, # 'name' => 'bool0083: in.op=or (no items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0083: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:or, type, type:bool) bool0083: in.op=or (no items) # { # 'input' => 0, # 'name' => 'bool0084: in.op=or (ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0084: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:or, type, type:bool) bool0084: in.op=or (ok) # { # 'input' => 0, # 'name' => 'bool0085: in.op=or (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0085: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:or, type, type:bool) bool0085: in.op=or (nok + ok) # { # 'input' => 0, # 'name' => 'bool0086: in.op=or (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0086: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:or, type, type:bool) bool0086: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0087: in.op=or (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0087: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:or, type, type:bool) bool0087: in.op=or (nok + nok) # { # 'input' => 0, # 'name' => 'bool0088: in.op=none (empty items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0088: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:none, type, type:bool) bool0088: in.op=none (empty items) # { # 'input' => 0, # 'name' => 'bool0089: in.op=none (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0089: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:none, type, type:bool) bool0089: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0090: in.op=none (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0090: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:none, type, type:bool) bool0090: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0091: in.op=none (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0091: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:none, type, type:bool) bool0091: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0092: in.op=none (ok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0092: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:none, type, type:bool) bool0092: in.op=none (ok + ok) # { # 'input' => 1, # 'name' => 'bool0093: min: 1 0', # 'schema' => [ # 'bool', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:bool) bool0093: min: 1 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:min, type, type:bool) bool0093: min: 1 0 # { # 'input' => 1, # 'name' => 'bool0094: min: 1 1', # 'schema' => [ # 'bool', # 'min', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:bool) bool0094: min: 1 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:min, type, type:bool) bool0094: min: 1 1 # { # 'input' => 0, # 'name' => 'bool0095: min: 0 1 -> fail', # 'schema' => [ # 'bool', # 'min', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:bool) bool0095: min: 0 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:min, type, type:bool) bool0095: min: 0 1 -> fail # { # 'input' => 1, # 'name' => 'bool0096: xmin: 1 0', # 'schema' => [ # 'bool', # 'xmin', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0096: xmin: 1 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:xmin, type, type:bool) bool0096: xmin: 1 0 # { # 'input' => 1, # 'name' => 'bool0097: xmin: 1 1 -> fail', # 'schema' => [ # 'bool', # 'xmin', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0097: xmin: 1 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:xmin, type, type:bool) bool0097: xmin: 1 1 -> fail # { # 'input' => 0, # 'name' => 'bool0098: xmin: 0 1 -> fail', # 'schema' => [ # 'bool', # 'xmin', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0098: xmin: 0 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:xmin, type, type:bool) bool0098: xmin: 0 1 -> fail # { # 'input' => 1, # 'name' => 'bool0099: max: 1 0 -> fail', # 'schema' => [ # 'bool', # 'max', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:bool) bool0099: max: 1 0 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:max, type, type:bool) bool0099: max: 1 0 -> fail # { # 'input' => 1, # 'name' => 'bool0100: max: 1 1', # 'schema' => [ # 'bool', # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:bool) bool0100: max: 1 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:max, type, type:bool) bool0100: max: 1 1 # { # 'input' => 0, # 'name' => 'bool0101: max: 0 1', # 'schema' => [ # 'bool', # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:bool) bool0101: max: 0 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:max, type, type:bool) bool0101: max: 0 1 # { # 'input' => 1, # 'name' => 'bool0102: xmax: 1 0 -> fail', # 'schema' => [ # 'bool', # 'xmax', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0102: xmax: 1 0 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:xmax, type, type:bool) bool0102: xmax: 1 0 -> fail # { # 'input' => 1, # 'name' => 'bool0103: xmax: 1 1 -> fail', # 'schema' => [ # 'bool', # 'xmax', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0103: xmax: 1 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:xmax, type, type:bool) bool0103: xmax: 1 1 -> fail # { # 'input' => 0, # 'name' => 'bool0104: xmax: 0 1', # 'schema' => [ # 'bool', # 'xmax', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0104: xmax: 0 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:xmax, type, type:bool) bool0104: xmax: 0 1 # { # 'input' => 1, # 'name' => 'bool0105: between: 1 0 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0105: between: 1 0 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:between, type, type:bool) bool0105: between: 1 0 & 1 # { # 'input' => 1, # 'name' => 'bool0106: between: 1 0 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0106: between: 1 0 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:between, type, type:bool) bool0106: between: 1 0 & 1 # { # 'input' => 1, # 'name' => 'bool0107: between: 1 1 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0107: between: 1 1 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:between, type, type:bool) bool0107: between: 1 1 & 1 # { # 'input' => 0, # 'name' => 'bool0108: between: 0 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:bool) bool0108: between: 0 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:between, type, type:bool) bool0108: between: 0 1 & 1 -> fail # { # 'input' => '1', # 'name' => 'bool0109: xbetween: 1 0 & 1', # 'schema' => [ # 'bool', # 'xbetween', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0109: xbetween: 1 0 & 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xbetween, type, type:bool) bool0109: xbetween: 1 0 & 1 # { # 'input' => '1', # 'name' => 'bool0110: xbetween: 1 0 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # 0, # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0110: xbetween: 1 0 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xbetween, type, type:bool) bool0110: xbetween: 1 0 & 1 -> fail # { # 'input' => '1', # 'name' => 'bool0111: xbetween: 1 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # '1', # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0111: xbetween: 1 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:xbetween, type, type:bool) bool0111: xbetween: 1 1 & 1 -> fail # { # 'input' => 0, # 'name' => 'bool0112: xbetween: 0 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # '1', # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0112: xbetween: 0 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xbetween, type, type:bool) bool0112: xbetween: 0 1 & 1 -> fail # { # 'input' => 0, # 'name' => 'bool0122: between.op=and (no items)', # 'schema' => [ # 'bool', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0122: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=type, type:bool) bool0122: between.op=and (no items) # { # 'input' => 1, # 'name' => 'bool0142: is_true: 1 (ok)', # 'schema' => [ # 'bool', # 'is_true', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0142: is_true: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:is_true, type, type:bool) bool0142: is_true: 1 (ok) # { # 'input' => 0, # 'name' => 'bool0143: is_true: 1 (nok)', # 'schema' => [ # 'bool', # 'is_true', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0143: is_true: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:is_true, type, type:bool) bool0143: is_true: 1 (nok) # { # 'input' => 0, # 'name' => 'bool0144: is_true: 0 (ok)', # 'schema' => [ # 'bool', # 'is_true', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0144: is_true: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:is_true, type, type:bool) bool0144: is_true: 0 (ok) # { # 'input' => 1, # 'name' => 'bool0145: is_true: 0 (nok)', # 'schema' => [ # 'bool', # 'is_true', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0145: is_true: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:is_true, type, type:bool) bool0145: is_true: 0 (nok) # { # 'input' => 0, # 'name' => 'bool0146: is_true: undef (ok 1)', # 'schema' => [ # 'bool', # 'is_true', # undef # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0146: is_true: undef (ok 1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:is_true, type, type:bool) bool0146: is_true: undef (ok 1) # { # 'input' => 1, # 'name' => 'bool0147: is_true: undef (ok 2)', # 'schema' => [ # 'bool', # 'is_true', # undef # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0147: is_true: undef (ok 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:is_true, type, type:bool) bool0147: is_true: undef (ok 2) ok 120 1..120 ok 4 - 10-type-bool.json # Subtest: 10-type-buf.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 0, # 'name' => 'buf0001: type check: must accept 0', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:buf) buf0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'buf0002: type check: must accept 1.1', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:buf) buf0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'buf0003: type check: must accept ', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:buf) buf0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'buf0004: type check: must accept str # ', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:buf) buf0004: type check: must accept str # # { # 'input' => [], # 'name' => 'buf0005: type check: must reject []', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:buf) buf0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:buf) buf0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'buf0006: type check: must reject {}', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:buf) buf0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:buf) buf0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'buf0007: must accept undefined value', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:buf) buf0007: must accept undefined value # { # 'input' => undef, # 'name' => 'buf0008: defhash_v', # 'schema' => [ # 'buf', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:buf) buf0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:buf) buf0008: defhash_v # { # 'input' => undef, # 'name' => 'buf0009: v', # 'schema' => [ # 'buf', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:buf) buf0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:buf) buf0009: v # { # 'input' => undef, # 'name' => 'buf0010: c', # 'schema' => [ # 'buf', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:buf) buf0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:buf) buf0010: c # { # 'input' => undef, # 'name' => 'buf0011: default_lang', # 'schema' => [ # 'buf', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:buf) buf0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:buf) buf0011: default_lang # { # 'input' => undef, # 'name' => 'buf0012: name', # 'schema' => [ # 'buf', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:buf) buf0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:buf) buf0012: name # { # 'input' => undef, # 'name' => 'buf0013: summary', # 'schema' => [ # 'buf', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:buf) buf0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:buf) buf0013: summary # { # 'input' => undef, # 'name' => 'buf0014: description', # 'schema' => [ # 'buf', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:buf) buf0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:buf) buf0014: description # { # 'input' => undef, # 'name' => 'buf0015: tags', # 'schema' => [ # 'buf', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:buf) buf0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:buf) buf0015: tags # { # 'input' => undef, # 'name' => 'buf0016: req=0 must accept undefined value', # 'schema' => [ # 'buf', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:buf) buf0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:buf) buf0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'buf0017: req=1 must reject undefined value', # 'schema' => [ # 'buf', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:buf) buf0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:buf) buf0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'buf0018: forbidden=0 must accept defined value', # 'schema' => [ # 'buf', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:buf) buf0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:buf) buf0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'buf0019: forbidden=1 must reject defined value', # 'schema' => [ # 'buf', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:buf) buf0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:buf) buf0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'buf0020: default: must accept valid default a', # 'schema' => [ # 'buf*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:buf) buf0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:buf) buf0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'buf0021: default: must reject invalid default []', # 'schema' => [ # 'buf*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:buf) buf0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:buf) buf0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0022: clause (dies, unknown clause)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:buf) buf0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:buf) buf0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'buf0023: clause (ok)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:buf) buf0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:buf) buf0023: clause (ok) # { # 'input' => 'a', # 'name' => 'buf0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:buf) buf0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:buf) buf0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0025: clause (nok)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:buf) buf0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:buf) buf0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0026: clset (dies, unknown clause)', # 'schema' => [ # 'buf*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:buf) buf0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:buf) buf0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0027: clset (dies, unknown attr)', # 'schema' => [ # 'buf*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:buf) buf0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:buf) buf0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'buf0028: clset (empty = ok)', # 'schema' => [ # 'buf*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:buf) buf0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'buf0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'buf*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:buf) buf0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:buf) buf0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'buf0030: clset (ok + ok = ok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:buf) buf0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:buf) buf0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'buf0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'buf*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:buf) buf0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'buf0032: clset (ok + nok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:buf) buf0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'buf0033: clset (nok + ok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:buf) buf0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'buf0034: clset (nok + nok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:buf) buf0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'buf0035: ok', # 'schema' => [ # 'buf', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:buf) buf0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:buf) buf0035: ok # { # 'input' => undef, # 'name' => 'buf0036: ok + op not (nok)', # 'schema' => [ # 'buf', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:buf) buf0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:buf) buf0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'buf0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:buf) buf0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'buf0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:buf) buf0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'buf0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'buf', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:buf) buf0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'buf0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'buf*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:buf) buf0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'buf0041: is: must accept same value', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:buf) buf0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:buf) buf0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'buf0042: is: must reject different value', # 'schema' => [ # 'buf', # 'is', # 'b' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:buf) buf0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:buf) buf0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'buf0043: !is (nok)', # 'schema' => [ # 'buf', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0043: !is (nok) # { # 'input' => 'a', # 'name' => 'buf0044: !is (ok)', # 'schema' => [ # 'buf', # '!is', # 'b' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0044: !is (ok) # { # 'input' => 'a', # 'name' => 'buf0045: is.op=not (nok)', # 'schema' => [ # 'buf', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:buf) buf0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:buf) buf0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'buf0046: is.op=not (ok)', # 'schema' => [ # 'buf', # 'is', # 'b', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:buf) buf0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:buf) buf0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'buf0047: is& (no items)', # 'schema' => [ # 'buf', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0047: is& (no items) # { # 'input' => 'a', # 'name' => 'buf0048: is& (ok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0049: is& (nok + ok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0050: is& (ok + nok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0051: is& (nok + nok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0052: is.op=and (no items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:buf) buf0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'buf0053: is.op=and (ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:buf) buf0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0054: is.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:buf) buf0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0055: is.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:buf) buf0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0056: is.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:buf) buf0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0057: is| (no items)', # 'schema' => [ # 'buf', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0057: is| (no items) # { # 'input' => 'a', # 'name' => 'buf0058: is| (ok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0058: is| (ok) # { # 'input' => 'a', # 'name' => 'buf0059: is| (nok + ok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0060: is| (ok + nok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0061: is| (nok + nok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0062: is.op=or (no items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:buf) buf0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'buf0063: is.op=or (ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:buf) buf0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'buf0064: is.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:buf) buf0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0065: is.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:buf) buf0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0066: is.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:buf) buf0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0067: is.op=none (empty items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:buf) buf0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'buf0068: is.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:buf) buf0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0069: is.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:buf) buf0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0070: is.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:buf) buf0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0071: is.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:buf) buf0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0072: in: must accept valid choices', # 'schema' => [ # 'buf', # 'in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:buf) buf0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:buf) buf0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'buf0073: in: must reject empty choices', # 'schema' => [ # 'buf', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:buf) buf0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:buf) buf0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'buf0074: !in (nok)', # 'schema' => [ # 'buf', # '!in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0074: !in (nok) # { # 'input' => 'a', # 'name' => 'buf0075: !in (ok)', # 'schema' => [ # 'buf', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0075: !in (ok) # { # 'input' => 'a', # 'name' => 'buf0076: in.op=not (nok)', # 'schema' => [ # 'buf', # 'in', # [ # 'a', # 'b' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:buf) buf0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:buf) buf0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'buf0077: in.op=not (ok)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:buf) buf0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:buf) buf0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'buf0078: in& (no items)', # 'schema' => [ # 'buf', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0078: in& (no items) # { # 'input' => 'a', # 'name' => 'buf0079: in& (ok)', # 'schema' => [ # 'buf', # 'in&', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0080: in& (nok + ok)', # 'schema' => [ # 'buf', # 'in&', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0081: in& (ok + nok)', # 'schema' => [ # 'buf', # 'in&', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0082: in& (nok + nok)', # 'schema' => [ # 'buf', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0083: in.op=and (no items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:buf) buf0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'buf0084: in.op=and (ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:buf) buf0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0085: in.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:buf) buf0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0086: in.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:buf) buf0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0087: in.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:buf) buf0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0088: in| (no items)', # 'schema' => [ # 'buf', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0088: in| (no items) # { # 'input' => 'a', # 'name' => 'buf0089: in| (ok)', # 'schema' => [ # 'buf', # 'in|', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0089: in| (ok) # { # 'input' => 'a', # 'name' => 'buf0090: in| (nok + ok)', # 'schema' => [ # 'buf', # 'in|', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0091: in| (ok + nok)', # 'schema' => [ # 'buf', # 'in|', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0092: in| (nok + nok)', # 'schema' => [ # 'buf', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0093: in.op=or (no items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:buf) buf0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'buf0094: in.op=or (ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:buf) buf0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'buf0095: in.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:buf) buf0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0096: in.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:buf) buf0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0097: in.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:buf) buf0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0098: in.op=none (empty items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:buf) buf0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'buf0099: in.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:buf) buf0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0100: in.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:buf) buf0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0101: in.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:buf) buf0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0102: in.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:buf) buf0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0103: min: a ', # 'schema' => [ # 'buf', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:buf) buf0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:buf) buf0103: min: a # { # 'input' => 'a', # 'name' => 'buf0104: min: a a', # 'schema' => [ # 'buf', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:buf) buf0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:buf) buf0104: min: a a # { # 'input' => '', # 'name' => 'buf0105: min: a -> fail', # 'schema' => [ # 'buf', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:buf) buf0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:buf) buf0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'buf0106: xmin: a ', # 'schema' => [ # 'buf', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:buf) buf0106: xmin: a # { # 'input' => 'a', # 'name' => 'buf0107: xmin: a a -> fail', # 'schema' => [ # 'buf', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:buf) buf0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'buf0108: xmin: a -> fail', # 'schema' => [ # 'buf', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:buf) buf0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'buf0109: max: a -> fail', # 'schema' => [ # 'buf', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:buf) buf0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:buf) buf0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'buf0110: max: a a', # 'schema' => [ # 'buf', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:buf) buf0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:buf) buf0110: max: a a # { # 'input' => '', # 'name' => 'buf0111: max: a', # 'schema' => [ # 'buf', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:buf) buf0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:buf) buf0111: max: a # { # 'input' => 'a', # 'name' => 'buf0112: xmax: a -> fail', # 'schema' => [ # 'buf', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:buf) buf0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'buf0113: xmax: a a -> fail', # 'schema' => [ # 'buf', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:buf) buf0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'buf0114: xmax: a', # 'schema' => [ # 'buf', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:buf) buf0114: xmax: a # { # 'input' => 'a', # 'name' => 'buf0115: between: a & ab', # 'schema' => [ # 'buf', # 'between', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0115: between: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:buf) buf0115: between: a & ab # { # 'input' => 'a', # 'name' => 'buf0116: between: a & a', # 'schema' => [ # 'buf', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:buf) buf0116: between: a & a # { # 'input' => 'a', # 'name' => 'buf0117: between: a a & a', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:buf) buf0117: between: a a & a # { # 'input' => '', # 'name' => 'buf0118: between: a & ab -> fail', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:buf) buf0118: between: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:buf) buf0118: between: a & ab -> fail # { # 'input' => 'a', # 'name' => 'buf0119: xbetween: a & ab', # 'schema' => [ # 'buf', # 'xbetween', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0119: xbetween: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:buf) buf0119: xbetween: a & ab # { # 'input' => 'a', # 'name' => 'buf0120: xbetween: a & a -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:buf) buf0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'buf0121: xbetween: a a & a -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:buf) buf0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'buf0122: xbetween: a & ab -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0122: xbetween: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:buf) buf0122: xbetween: a & ab -> fail # { # 'input' => '', # 'name' => 'buf0123: !between (nok)', # 'schema' => [ # 'buf', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0123: !between (nok) # { # 'input' => '', # 'name' => 'buf0124: !between (ok)', # 'schema' => [ # 'buf', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0124: !between (ok) # { # 'input' => '', # 'name' => 'buf0125: between.op=not (nok)', # 'schema' => [ # 'buf', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:buf) buf0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:buf) buf0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'buf0126: between.op=not (ok)', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:buf) buf0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:buf) buf0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'buf0127: between& (no items)', # 'schema' => [ # 'buf', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0127: between& (no items) # { # 'input' => '', # 'name' => 'buf0128: between& (ok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0129: between& (nok + ok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0130: between& (ok + nok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0131: between& (nok + nok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'buf0132: between.op=and (no items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:buf) buf0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'buf0133: between.op=and (ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:buf) buf0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0134: between.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:buf) buf0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0135: between.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:buf) buf0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0136: between.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:buf) buf0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'buf0137: between| (no items)', # 'schema' => [ # 'buf', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0137: between| (no items) # { # 'input' => '', # 'name' => 'buf0138: between| (ok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0138: between| (ok) # { # 'input' => '', # 'name' => 'buf0139: between| (nok + ok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'buf0140: between| (ok + nok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0141: between| (nok + nok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'buf0142: between.op=or (no items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:buf) buf0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'buf0143: between.op=or (ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:buf) buf0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'buf0144: between.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:buf) buf0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'buf0145: between.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:buf) buf0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0146: between.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:buf) buf0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'buf0147: between.op=none (empty items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:buf) buf0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'buf0148: between.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:buf) buf0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0149: between.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:buf) buf0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0150: between.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:buf) buf0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0151: between.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:buf) buf0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0152: len (ok)', # 'schema' => [ # 'buf', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:buf) buf0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:buf) buf0152: len (ok) # { # 'input' => 'a', # 'name' => 'buf0153: len (nok)', # 'schema' => [ # 'buf', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:buf) buf0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:buf) buf0153: len (nok) # { # 'input' => 'a', # 'name' => 'buf0154: min_len (ok)', # 'schema' => [ # 'buf', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:buf) buf0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:buf) buf0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'buf0155: min_len (nok)', # 'schema' => [ # 'buf', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:buf) buf0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:buf) buf0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'buf0156: max_len (ok)', # 'schema' => [ # 'buf', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:buf) buf0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:buf) buf0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'buf0157: max_len (nok)', # 'schema' => [ # 'buf', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:buf) buf0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:buf) buf0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'buf0158: len_between (ok)', # 'schema' => [ # 'buf', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:buf) buf0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:buf) buf0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'buf0159: len_between (nok)', # 'schema' => [ # 'buf', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:buf) buf0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:buf) buf0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'buf0160: each_index (ok)', # 'schema' => [ # 'buf', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:buf) buf0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:buf) buf0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'buf0161: each_index (nok)', # 'schema' => [ # 'buf', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:buf) buf0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:buf) buf0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'buf0162: each_elem (ok)', # 'schema' => [ # 'buf', # 'each_elem', # 'buf' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:buf) buf0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:buf) buf0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'buf0163: each_elem (nok)', # 'schema' => [ # 'buf', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:buf) buf0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:buf) buf0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'buf0170: has', # 'schema' => [ # 'buf', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, type, type:buf) buf0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 164 - (tags=clause:has, type, type:buf) buf0170: has # { # 'invalid_inputs' => [ # 'abc', # 'ac' # ], # 'name' => 'buf0171: has + op.not', # 'schema' => [ # 'buf', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'A', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:buf) buf0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - validator (rt=full) returns hash 1..7 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:buf) buf0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'buf0172: has + op.or', # 'schema' => [ # 'buf', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:buf) buf0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:buf) buf0172: has + op.or # { # 'invalid_inputs' => [ # 'ac', # '', # 'A', # 'c' # ], # 'name' => 'buf0173: has + op.and', # 'schema' => [ # 'buf', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:buf) buf0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - invalid input [3] ok 7 - validator (rt=full) returns hash 1..7 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:buf) buf0173: has + op.and # { # 'input' => 'a', # 'name' => 'buf0177: encoding: (ok)', # 'schema' => [ # 'buf', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:buf) buf0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:buf) buf0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'buf', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:buf) buf0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:buf) buf0178: encoding: (dies, unknown encoding) # { # 'input' => 'a', # 'name' => 'buf0179: match: (ok)', # 'schema' => [ # 'buf', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:buf) buf0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:buf) buf0179: match: (ok) # { # 'input' => 'A', # 'name' => 'buf0180: match: (nok)', # 'schema' => [ # 'buf', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:buf) buf0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:buf) buf0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0181: match: (dies, invalid regex)', # 'schema' => [ # 'buf', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:buf) buf0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:buf) buf0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'buf0182: is_re: 1 (ok)', # 'schema' => [ # 'buf', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:buf) buf0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'buf0183: is_re: 1 (nok)', # 'schema' => [ # 'buf', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:buf) buf0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'buf0184: is_re: 0 (ok)', # 'schema' => [ # 'buf', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:buf) buf0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'buf0185: is_re: 0 (nok)', # 'schema' => [ # 'buf', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:buf) buf0185: is_re: 0 (nok) ok 177 1..177 ok 5 - 10-type-buf.json # Subtest: 10-type-cistr.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 0, # 'name' => 'cistr0001: type check: must accept 0', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:cistr) cistr0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'cistr0002: type check: must accept 1.1', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:cistr) cistr0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'cistr0003: type check: must accept ', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:cistr) cistr0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'cistr0004: type check: must accept str # ', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:cistr) cistr0004: type check: must accept str # # { # 'input' => [], # 'name' => 'cistr0005: type check: must reject []', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:cistr) cistr0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:cistr) cistr0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'cistr0006: type check: must reject {}', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:cistr) cistr0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:cistr) cistr0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'cistr0007: must accept undefined value', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:cistr) cistr0007: must accept undefined value # { # 'input' => undef, # 'name' => 'cistr0008: defhash_v', # 'schema' => [ # 'cistr', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:cistr) cistr0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:cistr) cistr0008: defhash_v # { # 'input' => undef, # 'name' => 'cistr0009: v', # 'schema' => [ # 'cistr', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:cistr) cistr0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:cistr) cistr0009: v # { # 'input' => undef, # 'name' => 'cistr0010: c', # 'schema' => [ # 'cistr', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:cistr) cistr0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:cistr) cistr0010: c # { # 'input' => undef, # 'name' => 'cistr0011: default_lang', # 'schema' => [ # 'cistr', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:cistr) cistr0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:cistr) cistr0011: default_lang # { # 'input' => undef, # 'name' => 'cistr0012: name', # 'schema' => [ # 'cistr', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:cistr) cistr0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:cistr) cistr0012: name # { # 'input' => undef, # 'name' => 'cistr0013: summary', # 'schema' => [ # 'cistr', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:cistr) cistr0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:cistr) cistr0013: summary # { # 'input' => undef, # 'name' => 'cistr0014: description', # 'schema' => [ # 'cistr', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:cistr) cistr0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:cistr) cistr0014: description # { # 'input' => undef, # 'name' => 'cistr0015: tags', # 'schema' => [ # 'cistr', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:cistr) cistr0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:cistr) cistr0015: tags # { # 'input' => undef, # 'name' => 'cistr0016: req=0 must accept undefined value', # 'schema' => [ # 'cistr', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:cistr) cistr0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:cistr) cistr0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'cistr0017: req=1 must reject undefined value', # 'schema' => [ # 'cistr', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:cistr) cistr0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:cistr) cistr0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'cistr0018: forbidden=0 must accept defined value', # 'schema' => [ # 'cistr', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:cistr) cistr0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:cistr) cistr0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'cistr0019: forbidden=1 must reject defined value', # 'schema' => [ # 'cistr', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:cistr) cistr0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:cistr) cistr0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'cistr0020: default: must accept valid default a', # 'schema' => [ # 'cistr*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:cistr) cistr0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:cistr) cistr0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'cistr0021: default: must reject invalid default []', # 'schema' => [ # 'cistr*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:cistr) cistr0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:cistr) cistr0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0022: clause (dies, unknown clause)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:cistr) cistr0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'cistr0023: clause (ok)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:cistr) cistr0023: clause (ok) # { # 'input' => 'a', # 'name' => 'cistr0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:cistr) cistr0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0025: clause (nok)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:cistr) cistr0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0026: clset (dies, unknown clause)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:cistr) cistr0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0027: clset (dies, unknown attr)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:cistr) cistr0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'cistr0028: clset (empty = ok)', # 'schema' => [ # 'cistr*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:cistr) cistr0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'cistr0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'cistr*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:cistr) cistr0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'cistr0030: clset (ok + ok = ok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:cistr) cistr0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'cistr0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'cistr*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:cistr) cistr0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'cistr0032: clset (ok + nok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:cistr) cistr0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'cistr0033: clset (nok + ok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:cistr) cistr0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'cistr0034: clset (nok + nok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:cistr) cistr0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'cistr0035: ok', # 'schema' => [ # 'cistr', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:cistr) cistr0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:cistr) cistr0035: ok # { # 'input' => undef, # 'name' => 'cistr0036: ok + op not (nok)', # 'schema' => [ # 'cistr', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:cistr) cistr0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:cistr) cistr0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'cistr0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:cistr) cistr0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'cistr0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:cistr) cistr0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'cistr0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'cistr', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:cistr) cistr0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'cistr0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'cistr*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:cistr) cistr0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'cistr0041: is: must accept same value', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:cistr) cistr0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:cistr) cistr0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'cistr0042: is: must reject different value', # 'schema' => [ # 'cistr', # 'is', # 'B' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:cistr) cistr0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:cistr) cistr0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'cistr0043: !is (nok)', # 'schema' => [ # 'cistr', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0043: !is (nok) # { # 'input' => 'a', # 'name' => 'cistr0044: !is (ok)', # 'schema' => [ # 'cistr', # '!is', # 'B' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0044: !is (ok) # { # 'input' => 'a', # 'name' => 'cistr0045: is.op=not (nok)', # 'schema' => [ # 'cistr', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:cistr) cistr0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:cistr) cistr0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'cistr0046: is.op=not (ok)', # 'schema' => [ # 'cistr', # 'is', # 'B', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:cistr) cistr0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:cistr) cistr0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'cistr0047: is& (no items)', # 'schema' => [ # 'cistr', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0047: is& (no items) # { # 'input' => 'a', # 'name' => 'cistr0048: is& (ok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0049: is& (nok + ok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'B', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0050: is& (ok + nok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0051: is& (nok + nok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'B', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0052: is.op=and (no items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:cistr) cistr0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'cistr0053: is.op=and (ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:cistr) cistr0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0054: is.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:cistr) cistr0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0055: is.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:cistr) cistr0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0056: is.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:cistr) cistr0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0057: is| (no items)', # 'schema' => [ # 'cistr', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0057: is| (no items) # { # 'input' => 'a', # 'name' => 'cistr0058: is| (ok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0058: is| (ok) # { # 'input' => 'a', # 'name' => 'cistr0059: is| (nok + ok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'B', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0060: is| (ok + nok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0061: is| (nok + nok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'B', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0062: is.op=or (no items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:cistr) cistr0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'cistr0063: is.op=or (ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:cistr) cistr0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'cistr0064: is.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:cistr) cistr0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0065: is.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:cistr) cistr0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0066: is.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:cistr) cistr0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0067: is.op=none (empty items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:cistr) cistr0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'cistr0068: is.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:cistr) cistr0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0069: is.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:cistr) cistr0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0070: is.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:cistr) cistr0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0071: is.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:cistr) cistr0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0072: in: must accept valid choices', # 'schema' => [ # 'cistr', # 'in', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:cistr) cistr0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:cistr) cistr0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'cistr0073: in: must reject empty choices', # 'schema' => [ # 'cistr', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:cistr) cistr0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:cistr) cistr0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'cistr0074: !in (nok)', # 'schema' => [ # 'cistr', # '!in', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0074: !in (nok) # { # 'input' => 'a', # 'name' => 'cistr0075: !in (ok)', # 'schema' => [ # 'cistr', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0075: !in (ok) # { # 'input' => 'a', # 'name' => 'cistr0076: in.op=not (nok)', # 'schema' => [ # 'cistr', # 'in', # [ # 'a', # 'B' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:cistr) cistr0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:cistr) cistr0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'cistr0077: in.op=not (ok)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:cistr) cistr0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:cistr) cistr0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'cistr0078: in& (no items)', # 'schema' => [ # 'cistr', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0078: in& (no items) # { # 'input' => 'a', # 'name' => 'cistr0079: in& (ok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0080: in& (nok + ok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0081: in& (ok + nok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [ # 'a', # 'B' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0082: in& (nok + nok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0083: in.op=and (no items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:cistr) cistr0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'cistr0084: in.op=and (ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:cistr) cistr0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0085: in.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:cistr) cistr0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0086: in.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:cistr) cistr0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0087: in.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:cistr) cistr0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0088: in| (no items)', # 'schema' => [ # 'cistr', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0088: in| (no items) # { # 'input' => 'a', # 'name' => 'cistr0089: in| (ok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0089: in| (ok) # { # 'input' => 'a', # 'name' => 'cistr0090: in| (nok + ok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0091: in| (ok + nok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [ # 'a', # 'B' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0092: in| (nok + nok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0093: in.op=or (no items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:cistr) cistr0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'cistr0094: in.op=or (ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:cistr) cistr0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'cistr0095: in.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:cistr) cistr0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0096: in.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:cistr) cistr0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0097: in.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:cistr) cistr0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0098: in.op=none (empty items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:cistr) cistr0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'cistr0099: in.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:cistr) cistr0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0100: in.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:cistr) cistr0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0101: in.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:cistr) cistr0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0102: in.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:cistr) cistr0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0103: min: a ', # 'schema' => [ # 'cistr', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:cistr) cistr0103: min: a # { # 'input' => 'a', # 'name' => 'cistr0104: min: a a', # 'schema' => [ # 'cistr', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:cistr) cistr0104: min: a a # { # 'input' => '', # 'name' => 'cistr0105: min: a -> fail', # 'schema' => [ # 'cistr', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:cistr) cistr0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0106: xmin: a ', # 'schema' => [ # 'cistr', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:cistr) cistr0106: xmin: a # { # 'input' => 'a', # 'name' => 'cistr0107: xmin: a a -> fail', # 'schema' => [ # 'cistr', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:cistr) cistr0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'cistr0108: xmin: a -> fail', # 'schema' => [ # 'cistr', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:cistr) cistr0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0109: max: a -> fail', # 'schema' => [ # 'cistr', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:cistr) cistr0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0110: max: a a', # 'schema' => [ # 'cistr', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:cistr) cistr0110: max: a a # { # 'input' => '', # 'name' => 'cistr0111: max: a', # 'schema' => [ # 'cistr', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:cistr) cistr0111: max: a # { # 'input' => 'a', # 'name' => 'cistr0112: xmax: a -> fail', # 'schema' => [ # 'cistr', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:cistr) cistr0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0113: xmax: a a -> fail', # 'schema' => [ # 'cistr', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:cistr) cistr0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'cistr0114: xmax: a', # 'schema' => [ # 'cistr', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:cistr) cistr0114: xmax: a # { # 'input' => 'a', # 'name' => 'cistr0115: between: a & Ab', # 'schema' => [ # 'cistr', # 'between', # [ # '', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0115: between: a & Ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:cistr) cistr0115: between: a & Ab # { # 'input' => 'a', # 'name' => 'cistr0116: between: a & a', # 'schema' => [ # 'cistr', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:cistr) cistr0116: between: a & a # { # 'input' => 'a', # 'name' => 'cistr0117: between: a a & a', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:cistr) cistr0117: between: a a & a # { # 'input' => '', # 'name' => 'cistr0118: between: a & Ab -> fail', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0118: between: a & Ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:cistr) cistr0118: between: a & Ab -> fail # { # 'input' => 'a', # 'name' => 'cistr0119: xbetween: a & Ab', # 'schema' => [ # 'cistr', # 'xbetween', # [ # '', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0119: xbetween: a & Ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:cistr) cistr0119: xbetween: a & Ab # { # 'input' => 'a', # 'name' => 'cistr0120: xbetween: a & a -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:cistr) cistr0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'cistr0121: xbetween: a a & a -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:cistr) cistr0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'cistr0122: xbetween: a & Ab -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # 'a', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0122: xbetween: a & Ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:cistr) cistr0122: xbetween: a & Ab -> fail # { # 'input' => '', # 'name' => 'cistr0123: !between (nok)', # 'schema' => [ # 'cistr', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0123: !between (nok) # { # 'input' => '', # 'name' => 'cistr0124: !between (ok)', # 'schema' => [ # 'cistr', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0124: !between (ok) # { # 'input' => '', # 'name' => 'cistr0125: between.op=not (nok)', # 'schema' => [ # 'cistr', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:cistr) cistr0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:cistr) cistr0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'cistr0126: between.op=not (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:cistr) cistr0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:cistr) cistr0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'cistr0127: between& (no items)', # 'schema' => [ # 'cistr', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0127: between& (no items) # { # 'input' => '', # 'name' => 'cistr0128: between& (ok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0129: between& (nok + ok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0130: between& (ok + nok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0131: between& (nok + nok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'cistr0132: between.op=and (no items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:cistr) cistr0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'cistr0133: between.op=and (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:cistr) cistr0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0134: between.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:cistr) cistr0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0135: between.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:cistr) cistr0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0136: between.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:cistr) cistr0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'cistr0137: between| (no items)', # 'schema' => [ # 'cistr', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0137: between| (no items) # { # 'input' => '', # 'name' => 'cistr0138: between| (ok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0138: between| (ok) # { # 'input' => '', # 'name' => 'cistr0139: between| (nok + ok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'cistr0140: between| (ok + nok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0141: between| (nok + nok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'cistr0142: between.op=or (no items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:cistr) cistr0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'cistr0143: between.op=or (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:cistr) cistr0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'cistr0144: between.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:cistr) cistr0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'cistr0145: between.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:cistr) cistr0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0146: between.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:cistr) cistr0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'cistr0147: between.op=none (empty items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:cistr) cistr0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'cistr0148: between.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:cistr) cistr0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0149: between.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:cistr) cistr0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0150: between.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:cistr) cistr0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0151: between.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:cistr) cistr0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0152: len (ok)', # 'schema' => [ # 'cistr', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:cistr) cistr0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:cistr) cistr0152: len (ok) # { # 'input' => 'a', # 'name' => 'cistr0153: len (nok)', # 'schema' => [ # 'cistr', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:cistr) cistr0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:cistr) cistr0153: len (nok) # { # 'input' => 'a', # 'name' => 'cistr0154: min_len (ok)', # 'schema' => [ # 'cistr', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:cistr) cistr0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:cistr) cistr0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'cistr0155: min_len (nok)', # 'schema' => [ # 'cistr', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:cistr) cistr0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:cistr) cistr0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'cistr0156: max_len (ok)', # 'schema' => [ # 'cistr', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:cistr) cistr0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:cistr) cistr0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'cistr0157: max_len (nok)', # 'schema' => [ # 'cistr', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:cistr) cistr0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:cistr) cistr0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'cistr0158: len_between (ok)', # 'schema' => [ # 'cistr', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:cistr) cistr0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:cistr) cistr0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'cistr0159: len_between (nok)', # 'schema' => [ # 'cistr', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:cistr) cistr0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:cistr) cistr0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'cistr0160: each_index (ok)', # 'schema' => [ # 'cistr', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:cistr) cistr0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:cistr) cistr0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'cistr0161: each_index (nok)', # 'schema' => [ # 'cistr', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:cistr) cistr0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:cistr) cistr0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'cistr0162: each_elem (ok)', # 'schema' => [ # 'cistr', # 'each_elem', # 'cistr' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:cistr) cistr0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:cistr) cistr0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'cistr0163: each_elem (nok)', # 'schema' => [ # 'cistr', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:cistr) cistr0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:cistr) cistr0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'c' # ], # 'name' => 'cistr0170: has', # 'schema' => [ # 'cistr', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'Ac' # ] # } # Subtest: (tags=clause:has, type, type:cistr) cistr0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 164 - (tags=clause:has, type, type:cistr) cistr0170: has # { # 'invalid_inputs' => [ # 'abc', # 'Ac' # ], # 'name' => 'cistr0171: has + op.not', # 'schema' => [ # 'cistr', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:cistr) cistr0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:cistr) cistr0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'c' # ], # 'name' => 'cistr0172: has + op.or', # 'schema' => [ # 'cistr', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'Ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:cistr) cistr0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:cistr) cistr0172: has + op.or # { # 'invalid_inputs' => [ # 'Ac', # '', # 'c' # ], # 'name' => 'cistr0173: has + op.and', # 'schema' => [ # 'cistr', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:cistr) cistr0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:cistr) cistr0173: has + op.and # { # 'input' => 'a', # 'name' => 'cistr0177: encoding: (ok)', # 'schema' => [ # 'cistr', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:cistr) cistr0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:cistr) cistr0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'cistr', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:cistr) cistr0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:cistr) cistr0178: encoding: (dies, unknown encoding) # { # 'input' => 'A', # 'name' => 'cistr0179: match: (ok)', # 'schema' => [ # 'cistr', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:cistr) cistr0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:cistr) cistr0179: match: (ok) # { # 'input' => 'z', # 'name' => 'cistr0180: match: (nok)', # 'schema' => [ # 'cistr', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:cistr) cistr0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:cistr) cistr0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0181: match: (dies, invalid regex)', # 'schema' => [ # 'cistr', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:cistr) cistr0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:cistr) cistr0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'cistr0182: is_re: 1 (ok)', # 'schema' => [ # 'cistr', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:cistr) cistr0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'cistr0183: is_re: 1 (nok)', # 'schema' => [ # 'cistr', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:cistr) cistr0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'cistr0184: is_re: 0 (ok)', # 'schema' => [ # 'cistr', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:cistr) cistr0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'cistr0185: is_re: 0 (nok)', # 'schema' => [ # 'cistr', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:cistr) cistr0185: is_re: 0 (nok) ok 177 1..177 ok 6 - 10-type-cistr.json # Subtest: 10-type-float.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => '-1.1', # 'name' => 'float0001: type check: must accept -1.1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0001: type check: must accept -1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:float) float0001: type check: must accept -1.1 # { # 'input' => -1, # 'name' => 'float0002: type check: must accept -1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0002: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:float) float0002: type check: must accept -1 # { # 'input' => 0, # 'name' => 'float0003: type check: must accept 0', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0003: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:float) float0003: type check: must accept 0 # { # 'input' => 1, # 'name' => 'float0004: type check: must accept 1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0004: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:float) float0004: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'float0005: type check: must accept 1.1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0005: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:float) float0005: type check: must accept 1.1 # { # 'input' => 'a', # 'name' => 'float0006: type check: must reject a', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0006: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:float) float0006: type check: must reject a # { # 'input' => [], # 'name' => 'float0007: type check: must reject []', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0007: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:float) float0007: type check: must reject [] # { # 'input' => {}, # 'name' => 'float0008: type check: must reject {}', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0008: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:float) float0008: type check: must reject {} # { # 'input' => undef, # 'name' => 'float0009: must accept undefined value', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0009: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=type, type:float) float0009: must accept undefined value # { # 'input' => undef, # 'name' => 'float0010: defhash_v', # 'schema' => [ # 'float', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:float) float0010: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:defhash_v, type, type:float) float0010: defhash_v # { # 'input' => undef, # 'name' => 'float0011: v', # 'schema' => [ # 'float', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:float) float0011: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:v, type, type:float) float0011: v # { # 'input' => undef, # 'name' => 'float0012: c', # 'schema' => [ # 'float', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:float) float0012: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:c, type, type:float) float0012: c # { # 'input' => undef, # 'name' => 'float0013: default_lang', # 'schema' => [ # 'float', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:float) float0013: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:default_lang, type, type:float) float0013: default_lang # { # 'input' => undef, # 'name' => 'float0014: name', # 'schema' => [ # 'float', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:float) float0014: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:name, type, type:float) float0014: name # { # 'input' => undef, # 'name' => 'float0015: summary', # 'schema' => [ # 'float', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:float) float0015: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:summary, type, type:float) float0015: summary # { # 'input' => undef, # 'name' => 'float0016: description', # 'schema' => [ # 'float', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:float) float0016: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:description, type, type:float) float0016: description # { # 'input' => undef, # 'name' => 'float0017: tags', # 'schema' => [ # 'float', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:float) float0017: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:tags, type, type:float) float0017: tags # { # 'input' => undef, # 'name' => 'float0018: req=0 must accept undefined value', # 'schema' => [ # 'float', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:float) float0018: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:float) float0018: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'float0019: req=1 must reject undefined value', # 'schema' => [ # 'float', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:float) float0019: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:req, type, type:float) float0019: req=1 must reject undefined value # { # 'input' => '1.1', # 'name' => 'float0020: forbidden=0 must accept defined value', # 'schema' => [ # 'float', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:float) float0020: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:float) float0020: forbidden=0 must accept defined value # { # 'input' => '1.1', # 'name' => 'float0021: forbidden=1 must reject defined value', # 'schema' => [ # 'float', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:float) float0021: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:forbidden, type, type:float) float0021: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'float0022: default: must accept valid default 1.1', # 'schema' => [ # 'float*', # 'default', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:float) float0022: default: must accept valid default 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:float) float0022: default: must accept valid default 1.1 # { # 'input' => undef, # 'name' => 'float0023: default: must reject invalid default []', # 'schema' => [ # 'float*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:float) float0023: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:default, type, type:float) float0023: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0024: clause (dies, unknown clause)', # 'schema' => [ # 'float*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:float) float0024: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 24 - (tags=clause:clause, type, type:float) float0024: clause (dies, unknown clause) # { # 'input' => '1.1', # 'name' => 'float0025: clause (ok)', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:float) float0025: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:float) float0025: clause (ok) # { # 'input' => '1.1', # 'name' => 'float0026: clause (ok) + clause nok = nok', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 1 # ], # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:float) float0026: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:float) float0026: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0027: clause (nok)', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:float) float0027: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=clause:clause, type, type:float) float0027: clause (nok) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0028: clset (dies, unknown clause)', # 'schema' => [ # 'float*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:float) float0028: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:float) float0028: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0029: clset (dies, unknown attr)', # 'schema' => [ # 'float*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:float) float0029: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 29 - (tags=clause:clset, type, type:float) float0029: clset (dies, unknown attr) # { # 'input' => '1.1', # 'name' => 'float0030: clset (empty = ok)', # 'schema' => [ # 'float*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0030: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=type, type:float) float0030: clset (empty = ok) # { # 'input' => '1.1', # 'name' => 'float0031: clset (ignored clause/attr = ok)', # 'schema' => [ # 'float*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:float) float0031: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:float) float0031: clset (ignored clause/attr = ok) # { # 'input' => '1.1', # 'name' => 'float0032: clset (ok + ok = ok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => '1.1', # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:float) float0032: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:float) float0032: clset (ok + ok = ok) # { # 'input' => '1.1', # 'name' => 'float0033: clset (ok) + clause nok = nok', # 'schema' => [ # 'float*', # 'clset', # { # 'min' => 1 # }, # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0033: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:float) float0033: clset (ok) + clause nok = nok # { # 'input' => '1.1', # 'name' => 'float0034: clset (ok + nok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => 1, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0034: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:float) float0034: clset (ok + nok = nok) # { # 'input' => '1.1', # 'name' => 'float0035: clset (nok + ok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => '1.1', # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0035: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:float) float0035: clset (nok + ok = nok) # { # 'input' => '1.1', # 'name' => 'float0036: clset (nok + nok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => 1, # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0036: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:clset, type, type:float) float0036: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'float0037: ok', # 'schema' => [ # 'float', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:float) float0037: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, type, type:float) float0037: ok # { # 'input' => undef, # 'name' => 'float0038: ok + op not (nok)', # 'schema' => [ # 'float', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:float) float0038: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:ok, op, op:not, type, type:float) float0038: ok + op not (nok) # { # 'input' => '0.1', # 'name' => 'float0039: .err_level=error (clause=min, ok)', # 'schema' => [ # 'float', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0039: .err_level=error (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:float) float0039: .err_level=error (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'float0040: .err_level=error (clause=min, nok)', # 'schema' => [ # 'float', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0040: .err_level=error (clause=min, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:float) float0040: .err_level=error (clause=min, nok) # { # 'input' => '0.1', # 'name' => 'float0041: .err_level=warn (clause=min, ok)', # 'schema' => [ # 'float', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0041: .err_level=warn (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:float) float0041: .err_level=warn (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'float0042: .err_level=warn (clause=min, nok)', # 'schema' => [ # 'float*', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0042: .err_level=warn (clause=min, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=attr, attr:err_level, type, type:float) float0042: .err_level=warn (clause=min, nok) # { # 'input' => '1.1', # 'name' => 'float0043: is: must accept same value', # 'schema' => [ # 'float', # 'is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:float) float0043: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:float) float0043: is: must accept same value # { # 'input' => '1.1', # 'name' => 'float0044: is: must reject different value', # 'schema' => [ # 'float', # 'is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:float) float0044: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, type, type:float) float0044: is: must reject different value # { # 'input' => '1.1', # 'name' => 'float0045: !is (nok)', # 'schema' => [ # 'float', # '!is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:float) float0045: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:float) float0045: !is (nok) # { # 'input' => '1.1', # 'name' => 'float0046: !is (ok)', # 'schema' => [ # 'float', # '!is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:float) float0046: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, opshortcut, type, type:float) float0046: !is (ok) # { # 'input' => '1.1', # 'name' => 'float0047: is.op=not (nok)', # 'schema' => [ # 'float', # 'is', # '1.1', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:float) float0047: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:float) float0047: is.op=not (nok) # { # 'input' => '1.1', # 'name' => 'float0048: is.op=not (ok)', # 'schema' => [ # 'float', # 'is', # '1.2', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:float) float0048: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:not, type, type:float) float0048: is.op=not (ok) # { # 'input' => '1.1', # 'name' => 'float0049: is& (no items)', # 'schema' => [ # 'float', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0049: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0049: is& (no items) # { # 'input' => '1.1', # 'name' => 'float0050: is& (ok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0050: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0050: is& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0051: is& (nok + ok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0051: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0051: is& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0052: is& (ok + nok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0052: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0052: is& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0053: is& (nok + nok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0053: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0053: is& (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0054: is.op=and (no items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0054: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=type, type:float) float0054: is.op=and (no items) # { # 'input' => '1.1', # 'name' => 'float0055: is.op=and (ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0055: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:float) float0055: is.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0056: is.op=and (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0056: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:float) float0056: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0057: is.op=and (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0057: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:float) float0057: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0058: is.op=and (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0058: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:and, type, type:float) float0058: is.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0059: is| (no items)', # 'schema' => [ # 'float', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0059: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0059: is| (no items) # { # 'input' => '1.1', # 'name' => 'float0060: is| (ok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0060: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0060: is| (ok) # { # 'input' => '1.1', # 'name' => 'float0061: is| (nok + ok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0061: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0061: is| (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0062: is| (ok + nok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0062: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0062: is| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0063: is| (nok + nok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0063: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0063: is| (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0064: is.op=or (no items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0064: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:float) float0064: is.op=or (no items) # { # 'input' => '1.1', # 'name' => 'float0065: is.op=or (ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0065: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:float) float0065: is.op=or (ok) # { # 'input' => '1.1', # 'name' => 'float0066: is.op=or (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0066: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:float) float0066: is.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0067: is.op=or (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0067: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:float) float0067: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0068: is.op=or (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0068: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:or, type, type:float) float0068: is.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0069: is.op=none (empty items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0069: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:float) float0069: is.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'float0070: is.op=none (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0070: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:float) float0070: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0071: is.op=none (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0071: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:float) float0071: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0072: is.op=none (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0072: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:float) float0072: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0073: is.op=none (ok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0073: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:is, op, op:none, type, type:float) float0073: is.op=none (ok + ok) # { # 'input' => '1.1', # 'name' => 'float0074: in: must accept valid choices', # 'schema' => [ # 'float', # 'in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:float) float0074: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:float) float0074: in: must accept valid choices # { # 'input' => '1.1', # 'name' => 'float0075: in: must reject empty choices', # 'schema' => [ # 'float', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:float) float0075: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, type, type:float) float0075: in: must reject empty choices # { # 'input' => '1.1', # 'name' => 'float0076: !in (nok)', # 'schema' => [ # 'float', # '!in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:float) float0076: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:float) float0076: !in (nok) # { # 'input' => '1.1', # 'name' => 'float0077: !in (ok)', # 'schema' => [ # 'float', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:float) float0077: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, opshortcut, type, type:float) float0077: !in (ok) # { # 'input' => '1.1', # 'name' => 'float0078: in.op=not (nok)', # 'schema' => [ # 'float', # 'in', # [ # '1.1', # '1.2' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:float) float0078: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:float) float0078: in.op=not (nok) # { # 'input' => '1.1', # 'name' => 'float0079: in.op=not (ok)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:float) float0079: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:not, type, type:float) float0079: in.op=not (ok) # { # 'input' => '1.1', # 'name' => 'float0080: in& (no items)', # 'schema' => [ # 'float', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0080: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0080: in& (no items) # { # 'input' => '1.1', # 'name' => 'float0081: in& (ok)', # 'schema' => [ # 'float', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0081: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0081: in& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0082: in& (nok + ok)', # 'schema' => [ # 'float', # 'in&', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0082: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0082: in& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0083: in& (ok + nok)', # 'schema' => [ # 'float', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0083: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0083: in& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0084: in& (nok + nok)', # 'schema' => [ # 'float', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0084: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0084: in& (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0085: in.op=and (no items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0085: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=type, type:float) float0085: in.op=and (no items) # { # 'input' => '1.1', # 'name' => 'float0086: in.op=and (ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0086: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:float) float0086: in.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0087: in.op=and (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0087: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:float) float0087: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0088: in.op=and (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0088: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:float) float0088: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0089: in.op=and (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0089: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:and, type, type:float) float0089: in.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0090: in| (no items)', # 'schema' => [ # 'float', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0090: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0090: in| (no items) # { # 'input' => '1.1', # 'name' => 'float0091: in| (ok)', # 'schema' => [ # 'float', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0091: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0091: in| (ok) # { # 'input' => '1.1', # 'name' => 'float0092: in| (nok + ok)', # 'schema' => [ # 'float', # 'in|', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0092: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0092: in| (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0093: in| (ok + nok)', # 'schema' => [ # 'float', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0093: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0093: in| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0094: in| (nok + nok)', # 'schema' => [ # 'float', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0094: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0094: in| (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0095: in.op=or (no items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0095: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:float) float0095: in.op=or (no items) # { # 'input' => '1.1', # 'name' => 'float0096: in.op=or (ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0096: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:float) float0096: in.op=or (ok) # { # 'input' => '1.1', # 'name' => 'float0097: in.op=or (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0097: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:float) float0097: in.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0098: in.op=or (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0098: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:float) float0098: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0099: in.op=or (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0099: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:or, type, type:float) float0099: in.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0100: in.op=none (empty items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0100: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:float) float0100: in.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'float0101: in.op=none (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0101: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:float) float0101: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0102: in.op=none (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0102: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:float) float0102: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0103: in.op=none (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0103: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:float) float0103: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0104: in.op=none (ok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0104: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:in, op, op:none, type, type:float) float0104: in.op=none (ok + ok) # { # 'input' => '2.1', # 'name' => 'float0105: min: 2.1 -3.1', # 'schema' => [ # 'float', # 'min', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:float) float0105: min: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:float) float0105: min: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'float0106: min: 2.1 2.1', # 'schema' => [ # 'float', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:float) float0106: min: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:float) float0106: min: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'float0107: min: -3.1 2.1 -> fail', # 'schema' => [ # 'float', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:float) float0107: min: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:min, type, type:float) float0107: min: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0108: xmin: 2.1 -3.1', # 'schema' => [ # 'float', # 'xmin', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:float) float0108: xmin: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:float) float0108: xmin: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'float0109: xmin: 2.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:float) float0109: xmin: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:float) float0109: xmin: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0110: xmin: -3.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:float) float0110: xmin: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xmin, type, type:float) float0110: xmin: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0111: max: 2.1 -3.1 -> fail', # 'schema' => [ # 'float', # 'max', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:float) float0111: max: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:float) float0111: max: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0112: max: 2.1 2.1', # 'schema' => [ # 'float', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:float) float0112: max: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:float) float0112: max: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'float0113: max: -3.1 2.1', # 'schema' => [ # 'float', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:float) float0113: max: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:max, type, type:float) float0113: max: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'float0114: xmax: 2.1 -3.1 -> fail', # 'schema' => [ # 'float', # 'xmax', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:float) float0114: xmax: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:float) float0114: xmax: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0115: xmax: 2.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:float) float0115: xmax: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:float) float0115: xmax: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0116: xmax: -3.1 2.1', # 'schema' => [ # 'float', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:float) float0116: xmax: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:xmax, type, type:float) float0116: xmax: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'float0117: between: 2.1 -3.1 & 4.1', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0117: between: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:float) float0117: between: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'float0118: between: 2.1 -3.1 & 2.1', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0118: between: 2.1 -3.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:float) float0118: between: 2.1 -3.1 & 2.1 # { # 'input' => '2.1', # 'name' => 'float0119: between: 2.1 2.1 & 2.1', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0119: between: 2.1 2.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:float) float0119: between: 2.1 2.1 & 2.1 # { # 'input' => '-3.1', # 'name' => 'float0120: between: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:float) float0120: between: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:between, type, type:float) float0120: between: -3.1 2.1 & 4.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0121: xbetween: 2.1 -3.1 & 4.1', # 'schema' => [ # 'float', # 'xbetween', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:float) float0121: xbetween: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:float) float0121: xbetween: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'float0122: xbetween: 2.1 -3.1 & 2.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0122: xbetween: 2.1 -3.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:float) float0122: xbetween: 2.1 -3.1 & 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0123: xbetween: 2.1 2.1 & 2.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0123: xbetween: 2.1 2.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:float) float0123: xbetween: 2.1 2.1 & 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0124: xbetween: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0124: xbetween: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:xbetween, type, type:float) float0124: xbetween: -3.1 2.1 & 4.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0125: !between (nok)', # 'schema' => [ # 'float', # '!between', # [ # '-3.1', # '-3.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:float) float0125: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:float) float0125: !between (nok) # { # 'input' => '-3.1', # 'name' => 'float0126: !between (ok)', # 'schema' => [ # 'float', # '!between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:float) float0126: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, opshortcut, type, type:float) float0126: !between (ok) # { # 'input' => '-3.1', # 'name' => 'float0127: between.op=not (nok)', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '-3.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:float) float0127: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:float) float0127: between.op=not (nok) # { # 'input' => '-3.1', # 'name' => 'float0128: between.op=not (ok)', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '2.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:float) float0128: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:not, type, type:float) float0128: between.op=not (ok) # { # 'input' => '-3.1', # 'name' => 'float0129: between& (no items)', # 'schema' => [ # 'float', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0129: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0129: between& (no items) # { # 'input' => '-3.1', # 'name' => 'float0130: between& (ok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0130: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0130: between& (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0131: between& (nok + ok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0131: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0131: between& (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0132: between& (ok + nok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0132: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0132: between& (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0133: between& (nok + nok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0133: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0133: between& (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0134: between.op=and (no items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0134: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=type, type:float) float0134: between.op=and (no items) # { # 'input' => '-3.1', # 'name' => 'float0135: between.op=and (ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0135: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:float) float0135: between.op=and (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0136: between.op=and (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0136: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:float) float0136: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0137: between.op=and (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0137: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:float) float0137: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0138: between.op=and (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0138: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:and, type, type:float) float0138: between.op=and (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0139: between| (no items)', # 'schema' => [ # 'float', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0139: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0139: between| (no items) # { # 'input' => '-3.1', # 'name' => 'float0140: between| (ok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0140: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0140: between| (ok) # { # 'input' => '-3.1', # 'name' => 'float0141: between| (nok + ok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0141: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0141: between| (nok + ok) # { # 'input' => '-3.1', # 'name' => 'float0142: between| (ok + nok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0142: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0142: between| (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0143: between| (nok + nok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0143: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0143: between| (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0144: between.op=or (no items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0144: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:float) float0144: between.op=or (no items) # { # 'input' => '-3.1', # 'name' => 'float0145: between.op=or (ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0145: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:float) float0145: between.op=or (ok) # { # 'input' => '-3.1', # 'name' => 'float0146: between.op=or (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0146: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:float) float0146: between.op=or (nok + ok) # { # 'input' => '-3.1', # 'name' => 'float0147: between.op=or (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0147: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:float) float0147: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0148: between.op=or (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0148: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:or, type, type:float) float0148: between.op=or (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0149: between.op=none (empty items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0149: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:float) float0149: between.op=none (empty items) # { # 'input' => '-3.1', # 'name' => 'float0150: between.op=none (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0150: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:float) float0150: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0151: between.op=none (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0151: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:float) float0151: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0152: between.op=none (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0152: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:float) float0152: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0153: between.op=none (ok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0153: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:between, op, op:none, type, type:float) float0153: between.op=none (ok + ok) ok 154 1..154 ok 7 - 10-type-float.json # Subtest: 10-type-hash.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => {}, # 'name' => 'hash0001: type check: must accept {}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0001: type check: must accept {} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:hash) hash0001: type check: must accept {} # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0002: type check: must accept {a=>1}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0002: type check: must accept {a=>1} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:hash) hash0002: type check: must accept {a=>1} # { # 'input' => { # '' => [] # }, # 'name' => 'hash0003: type check: must accept {""=>[]}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0003: type check: must accept {""=>[]} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:hash) hash0003: type check: must accept {""=>[]} # { # 'input' => 1, # 'name' => 'hash0004: type check: must reject 1', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0004: type check: must reject 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:hash) hash0004: type check: must reject 1 # { # 'input' => 'a', # 'name' => 'hash0005: type check: must reject a', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:hash) hash0005: type check: must reject a # { # 'input' => [], # 'name' => 'hash0006: type check: must reject []', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0006: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:hash) hash0006: type check: must reject [] # { # 'input' => undef, # 'name' => 'hash0007: must accept undefined value', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:hash) hash0007: must accept undefined value # { # 'input' => undef, # 'name' => 'hash0008: defhash_v', # 'schema' => [ # 'hash', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:hash) hash0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:hash) hash0008: defhash_v # { # 'input' => undef, # 'name' => 'hash0009: v', # 'schema' => [ # 'hash', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:hash) hash0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:hash) hash0009: v # { # 'input' => undef, # 'name' => 'hash0010: c', # 'schema' => [ # 'hash', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:hash) hash0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:hash) hash0010: c # { # 'input' => undef, # 'name' => 'hash0011: default_lang', # 'schema' => [ # 'hash', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:hash) hash0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:hash) hash0011: default_lang # { # 'input' => undef, # 'name' => 'hash0012: name', # 'schema' => [ # 'hash', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:hash) hash0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:hash) hash0012: name # { # 'input' => undef, # 'name' => 'hash0013: summary', # 'schema' => [ # 'hash', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:hash) hash0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:hash) hash0013: summary # { # 'input' => undef, # 'name' => 'hash0014: description', # 'schema' => [ # 'hash', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:hash) hash0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:hash) hash0014: description # { # 'input' => undef, # 'name' => 'hash0015: tags', # 'schema' => [ # 'hash', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:hash) hash0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:hash) hash0015: tags # { # 'input' => undef, # 'name' => 'hash0016: req=0 must accept undefined value', # 'schema' => [ # 'hash', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:hash) hash0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:hash) hash0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'hash0017: req=1 must reject undefined value', # 'schema' => [ # 'hash', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:hash) hash0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:hash) hash0017: req=1 must reject undefined value # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0018: forbidden=0 must accept defined value', # 'schema' => [ # 'hash', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:hash) hash0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:hash) hash0018: forbidden=0 must accept defined value # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0019: forbidden=1 must reject defined value', # 'schema' => [ # 'hash', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:hash) hash0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:hash) hash0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'hash0020: default: must accept valid default {}', # 'schema' => [ # 'hash*', # 'default', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:hash) hash0020: default: must accept valid default {} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:hash) hash0020: default: must accept valid default {} # { # 'input' => undef, # 'name' => 'hash0021: default: must reject invalid default a', # 'schema' => [ # 'hash*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:hash) hash0021: default: must reject invalid default a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:hash) hash0021: default: must reject invalid default a # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0022: clause (dies, unknown clause)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:hash) hash0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:hash) hash0022: clause (dies, unknown clause) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0023: clause (ok)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:hash) hash0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:hash) hash0023: clause (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 1 # ], # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:hash) hash0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:hash) hash0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0025: clause (nok)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:hash) hash0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:hash) hash0025: clause (nok) # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0026: clset (dies, unknown clause)', # 'schema' => [ # 'hash*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:hash) hash0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:hash) hash0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0027: clset (dies, unknown attr)', # 'schema' => [ # 'hash*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:hash) hash0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:hash) hash0027: clset (dies, unknown attr) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0028: clset (empty = ok)', # 'schema' => [ # 'hash*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:hash) hash0028: clset (empty = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'hash*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:hash) hash0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:hash) hash0029: clset (ignored clause/attr = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0030: clset (ok + ok = ok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:hash) hash0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:hash) hash0030: clset (ok + ok = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'hash*', # 'clset', # { # 'min_len' => 1 # }, # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:hash) hash0031: clset (ok) + clause nok = nok # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0032: clset (ok + nok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:hash) hash0032: clset (ok + nok = nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0033: clset (nok + ok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:hash) hash0033: clset (nok + ok = nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0034: clset (nok + nok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:hash) hash0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'hash0035: ok', # 'schema' => [ # 'hash', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:hash) hash0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:hash) hash0035: ok # { # 'input' => undef, # 'name' => 'hash0036: ok + op not (nok)', # 'schema' => [ # 'hash', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:hash) hash0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:hash) hash0036: ok + op not (nok) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:hash) hash0037: .err_level=error (clause=is, ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:hash) hash0038: .err_level=error (clause=is, nok) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # }, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:hash) hash0039: .err_level=warn (clause=is, ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'hash*', # 'is', # { # 'a' => 0 # }, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:hash) hash0040: .err_level=warn (clause=is, nok) # { # 'input' => {}, # 'name' => 'hash0041: is: must accept same value', # 'schema' => [ # 'hash', # 'is', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:hash) hash0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:hash) hash0041: is: must accept same value # { # 'input' => {}, # 'name' => 'hash0042: is: must reject different value', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:hash) hash0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:hash) hash0042: is: must reject different value # { # 'input' => {}, # 'name' => 'hash0043: !is (nok)', # 'schema' => [ # 'hash', # '!is', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0043: !is (nok) # { # 'input' => {}, # 'name' => 'hash0044: !is (ok)', # 'schema' => [ # 'hash', # '!is', # { # 'a' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0044: !is (ok) # { # 'input' => {}, # 'name' => 'hash0045: is.op=not (nok)', # 'schema' => [ # 'hash', # 'is', # {}, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:hash) hash0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:hash) hash0045: is.op=not (nok) # { # 'input' => {}, # 'name' => 'hash0046: is.op=not (ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 1 # }, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:hash) hash0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:hash) hash0046: is.op=not (ok) # { # 'input' => {}, # 'name' => 'hash0047: is& (no items)', # 'schema' => [ # 'hash', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0047: is& (no items) # { # 'input' => {}, # 'name' => 'hash0048: is& (ok)', # 'schema' => [ # 'hash', # 'is&', # [ # {}, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0048: is& (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0049: is& (nok + ok)', # 'schema' => [ # 'hash', # 'is&', # [ # { # 'a' => 1 # }, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0050: is& (ok + nok)', # 'schema' => [ # 'hash', # 'is&', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0051: is& (nok + nok)', # 'schema' => [ # 'hash', # 'is&', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0051: is& (nok + nok) # { # 'input' => {}, # 'name' => 'hash0052: is.op=and (no items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:hash) hash0052: is.op=and (no items) # { # 'input' => {}, # 'name' => 'hash0053: is.op=and (ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:hash) hash0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0054: is.op=and (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:hash) hash0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0055: is.op=and (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:hash) hash0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0056: is.op=and (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:hash) hash0056: is.op=and (nok + nok) # { # 'input' => {}, # 'name' => 'hash0057: is| (no items)', # 'schema' => [ # 'hash', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0057: is| (no items) # { # 'input' => {}, # 'name' => 'hash0058: is| (ok)', # 'schema' => [ # 'hash', # 'is|', # [ # {}, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0058: is| (ok) # { # 'input' => {}, # 'name' => 'hash0059: is| (nok + ok)', # 'schema' => [ # 'hash', # 'is|', # [ # { # 'a' => 1 # }, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0059: is| (nok + ok) # { # 'input' => {}, # 'name' => 'hash0060: is| (ok + nok)', # 'schema' => [ # 'hash', # 'is|', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0061: is| (nok + nok)', # 'schema' => [ # 'hash', # 'is|', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0061: is| (nok + nok) # { # 'input' => {}, # 'name' => 'hash0062: is.op=or (no items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:hash) hash0062: is.op=or (no items) # { # 'input' => {}, # 'name' => 'hash0063: is.op=or (ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:hash) hash0063: is.op=or (ok) # { # 'input' => {}, # 'name' => 'hash0064: is.op=or (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:hash) hash0064: is.op=or (nok + ok) # { # 'input' => {}, # 'name' => 'hash0065: is.op=or (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:hash) hash0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0066: is.op=or (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:hash) hash0066: is.op=or (nok + nok) # { # 'input' => {}, # 'name' => 'hash0067: is.op=none (empty items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:hash) hash0067: is.op=none (empty items) # { # 'input' => {}, # 'name' => 'hash0068: is.op=none (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:hash) hash0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0069: is.op=none (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:hash) hash0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0070: is.op=none (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:hash) hash0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0071: is.op=none (ok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:hash) hash0071: is.op=none (ok + ok) # { # 'input' => {}, # 'name' => 'hash0072: in: must accept valid choices', # 'schema' => [ # 'hash', # 'in', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:hash) hash0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:hash) hash0072: in: must accept valid choices # { # 'input' => {}, # 'name' => 'hash0073: in: must reject empty choices', # 'schema' => [ # 'hash', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:hash) hash0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:hash) hash0073: in: must reject empty choices # { # 'input' => {}, # 'name' => 'hash0074: !in (nok)', # 'schema' => [ # 'hash', # '!in', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0074: !in (nok) # { # 'input' => {}, # 'name' => 'hash0075: !in (ok)', # 'schema' => [ # 'hash', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0075: !in (ok) # { # 'input' => {}, # 'name' => 'hash0076: in.op=not (nok)', # 'schema' => [ # 'hash', # 'in', # [ # {}, # { # 'a' => 1 # } # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:hash) hash0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:hash) hash0076: in.op=not (nok) # { # 'input' => {}, # 'name' => 'hash0077: in.op=not (ok)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:hash) hash0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:hash) hash0077: in.op=not (ok) # { # 'input' => {}, # 'name' => 'hash0078: in& (no items)', # 'schema' => [ # 'hash', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0078: in& (no items) # { # 'input' => {}, # 'name' => 'hash0079: in& (ok)', # 'schema' => [ # 'hash', # 'in&', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0079: in& (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0080: in& (nok + ok)', # 'schema' => [ # 'hash', # 'in&', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0081: in& (ok + nok)', # 'schema' => [ # 'hash', # 'in&', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0082: in& (nok + nok)', # 'schema' => [ # 'hash', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0082: in& (nok + nok) # { # 'input' => {}, # 'name' => 'hash0083: in.op=and (no items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:hash) hash0083: in.op=and (no items) # { # 'input' => {}, # 'name' => 'hash0084: in.op=and (ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:hash) hash0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0085: in.op=and (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:hash) hash0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0086: in.op=and (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:hash) hash0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0087: in.op=and (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:hash) hash0087: in.op=and (nok + nok) # { # 'input' => {}, # 'name' => 'hash0088: in| (no items)', # 'schema' => [ # 'hash', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0088: in| (no items) # { # 'input' => {}, # 'name' => 'hash0089: in| (ok)', # 'schema' => [ # 'hash', # 'in|', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0089: in| (ok) # { # 'input' => {}, # 'name' => 'hash0090: in| (nok + ok)', # 'schema' => [ # 'hash', # 'in|', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0090: in| (nok + ok) # { # 'input' => {}, # 'name' => 'hash0091: in| (ok + nok)', # 'schema' => [ # 'hash', # 'in|', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0092: in| (nok + nok)', # 'schema' => [ # 'hash', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0092: in| (nok + nok) # { # 'input' => {}, # 'name' => 'hash0093: in.op=or (no items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:hash) hash0093: in.op=or (no items) # { # 'input' => {}, # 'name' => 'hash0094: in.op=or (ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:hash) hash0094: in.op=or (ok) # { # 'input' => {}, # 'name' => 'hash0095: in.op=or (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:hash) hash0095: in.op=or (nok + ok) # { # 'input' => {}, # 'name' => 'hash0096: in.op=or (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:hash) hash0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0097: in.op=or (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:hash) hash0097: in.op=or (nok + nok) # { # 'input' => {}, # 'name' => 'hash0098: in.op=none (empty items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:hash) hash0098: in.op=none (empty items) # { # 'input' => {}, # 'name' => 'hash0099: in.op=none (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:hash) hash0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0100: in.op=none (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:hash) hash0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0101: in.op=none (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:hash) hash0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0102: in.op=none (ok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:hash) hash0102: in.op=none (ok + ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0103: len (ok)', # 'schema' => [ # 'hash', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:hash) hash0103: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:len, type, type:hash) hash0103: len (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0104: len (nok)', # 'schema' => [ # 'hash', # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:hash) hash0104: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:len, type, type:hash) hash0104: len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0105: min_len (ok)', # 'schema' => [ # 'hash', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:hash) hash0105: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min_len, type, type:hash) hash0105: min_len (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0106: min_len (nok)', # 'schema' => [ # 'hash', # 'min_len', # 2 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:hash) hash0106: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min_len, type, type:hash) hash0106: min_len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0107: max_len (ok)', # 'schema' => [ # 'hash', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:hash) hash0107: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:max_len, type, type:hash) hash0107: max_len (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0108: max_len (nok)', # 'schema' => [ # 'hash', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:hash) hash0108: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:max_len, type, type:hash) hash0108: max_len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0109: len_between (ok)', # 'schema' => [ # 'hash', # 'len_between', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:hash) hash0109: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:len_between, type, type:hash) hash0109: len_between (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0110: len_between (nok)', # 'schema' => [ # 'hash', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:hash) hash0110: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:len_between, type, type:hash) hash0110: len_between (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0111: each_index (ok)', # 'schema' => [ # 'hash', # 'each_index', # [ # 'str', # 'len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:hash) hash0111: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:each_index, type, type:hash) hash0111: each_index (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0112: each_index (nok)', # 'schema' => [ # 'hash', # 'each_index', # [ # 'str', # 'len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:hash) hash0112: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:each_index, type, type:hash) hash0112: each_index (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0113: each_key (ok)', # 'schema' => [ # 'hash', # 'each_key', # [ # 'str', # 'len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_key, type, type:hash) hash0113: each_key (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:each_key, type, type:hash) hash0113: each_key (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0114: each_key (nok)', # 'schema' => [ # 'hash', # 'each_key', # [ # 'str', # 'len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_key' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_key, type, type:hash) hash0114: each_key (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:each_key, type, type:hash) hash0114: each_key (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0115: each_elem (ok)', # 'schema' => [ # 'hash', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:hash) hash0115: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:each_elem, type, type:hash) hash0115: each_elem (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0116: each_elem (nok)', # 'schema' => [ # 'hash', # 'each_elem', # 'int' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:hash) hash0116: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:each_elem, type, type:hash) hash0116: each_elem (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0117: of (ok)', # 'schema' => [ # 'hash', # 'of', # 'float' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:of' # ], # 'valid' => 1 # } # Subtest: (tags=clause:of, type, type:hash) hash0117: of (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:of, type, type:hash) hash0117: of (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0118: of (nok)', # 'schema' => [ # 'hash', # 'of', # 'int' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:of' # ], # 'valid' => 0 # } # Subtest: (tags=clause:of, type, type:hash) hash0118: of (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:of, type, type:hash) hash0118: of (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0119: each_value (ok)', # 'schema' => [ # 'hash', # 'each_value', # 'float' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_value' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_value, type, type:hash) hash0119: each_value (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:each_value, type, type:hash) hash0119: each_value (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0120: each_value (nok)', # 'schema' => [ # 'hash', # 'each_value', # 'int' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_value' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_value, type, type:hash) hash0120: each_value (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:each_value, type, type:hash) hash0120: each_value (nok) # { # 'invalid_inputs' => [ # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0129: has', # 'schema' => [ # 'hash', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, type, type:hash) hash0129: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 121 - (tags=clause:has, type, type:hash) hash0129: has # { # 'invalid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ], # 'name' => 'hash0130: has + op.not', # 'schema' => [ # 'hash', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # {}, # { # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:hash) hash0130: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 122 - (tags=clause:has, op, op:not, opshortcut, type, type:hash) hash0130: has + op.not # { # 'invalid_inputs' => [ # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0131: has + op.or', # 'schema' => [ # 'hash', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:hash) hash0131: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 123 - (tags=clause:has, op, op:or, opshortcut, type, type:hash) hash0131: has + op.or # { # 'invalid_inputs' => [ # { # '1' => 'a', # '3' => 'c' # }, # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0132: has + op.and', # 'schema' => [ # 'hash', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:hash) hash0132: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 124 - (tags=clause:has, op, op:and, opshortcut, type, type:hash) hash0132: has + op.and # { # 'input' => {}, # 'name' => 'hash0138: keys: (ok, empty)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0138: keys: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:keys, type, type:hash) hash0138: keys: (ok, empty) # { # 'input' => { # 'a' => undef # }, # 'name' => 'hash0139: keys: (ok, only a, a valid 1)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0139: keys: (ok, only a, a valid 1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:keys, type, type:hash) hash0139: keys: (ok, only a, a valid 1) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0140: keys: (ok, only a, a valid 2)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0140: keys: (ok, only a, a valid 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:keys, type, type:hash) hash0140: keys: (ok, only a, a valid 2) # { # 'input' => { # 'a' => '1.1' # }, # 'name' => 'hash0141: keys: (nok, only a, a invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0141: keys: (nok, only a, a invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:keys, type, type:hash) hash0141: keys: (nok, only a, a invalid) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0142: keys: (ok, only a, valid 2)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0142: keys: (ok, only a, valid 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:keys, type, type:hash) hash0142: keys: (ok, only a, valid 2) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0143: keys: (ok, a & b, valid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0143: keys: (ok, a & b, valid) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:keys, type, type:hash) hash0143: keys: (ok, a & b, valid) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0144: keys: (nok, a & b, b invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0144: keys: (nok, a & b, b invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:keys, type, type:hash) hash0144: keys: (nok, a & b, b invalid) # { # 'input' => { # 'a' => '1.1', # 'b' => '1.1' # }, # 'name' => 'hash0145: keys: (nok, a & b, a invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0145: keys: (nok, a & b, a invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:keys, type, type:hash) hash0145: keys: (nok, a & b, a invalid) # { # 'input' => { # 'a' => '1.1', # 'b' => undef # }, # 'name' => 'hash0146: keys: (nok, a & b, a & b invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0146: keys: (nok, a & b, a & b invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:keys, type, type:hash) hash0146: keys: (nok, a & b, a & b invalid) # { # 'input' => { # 'a' => 1, # 'b' => '1.1', # 'c' => 1 # }, # 'name' => 'hash0147: keys: (nok, extra)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0147: keys: (nok, extra) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:keys, type, type:hash) hash0147: keys: (nok, extra) # { # 'input' => { # 'a' => 1, # 'b' => '1.1', # 'c' => 1 # }, # 'name' => 'hash0148: keys: (ok, extra, restrict=0)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0148: keys: (ok, extra, restrict=0) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:keys, type, type:hash) hash0148: keys: (ok, extra, restrict=0) # { # 'input' => {}, # 'name' => 'hash0149: keys (create_default=1) 1', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0149: keys (create_default=1) 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 136 - (tags=clause:keys, type, type:hash) hash0149: keys (create_default=1) 1 # { # 'input' => { # 'b' => undef # }, # 'name' => 'hash0150: keys (create_default=1) 2', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0150: keys (create_default=1) 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 137 - (tags=clause:keys, type, type:hash) hash0150: keys (create_default=1) 2 # { # 'input' => {}, # 'name' => 'hash0151: keys (create_default=0) 1', # 'output' => {}, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # }, # 'keys.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0151: keys (create_default=0) 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 138 - (tags=clause:keys, type, type:hash) hash0151: keys (create_default=0) 1 # { # 'input' => { # 'b' => undef # }, # 'name' => 'hash0152: keys (create_default=0) 2', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # }, # 'keys.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0152: keys (create_default=0) 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 139 - (tags=clause:keys, type, type:hash) hash0152: keys (create_default=0) 2 # { # 'invalid_inputs' => [ # { # 'a' => 'x' # }, # { # 'b' => 'x' # }, # { # 'c' => 1 # } # ], # 'name' => 'hash0153: re_keys', # 'schema' => [ # 'hash', # { # 're_keys' => { # '[ab]' => 'int' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:re_keys' # ], # 'valid_inputs' => [ # {}, # { # 'a' => 1 # }, # { # 'b' => 1 # } # ] # } # Subtest: (tags=clause:re_keys, type, type:hash) hash0153: re_keys ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - invalid input [2] ok 8 - validator (rt=full) returns hash 1..8 ok 140 - (tags=clause:re_keys, type, type:hash) hash0153: re_keys # { # 'invalid_inputs' => [ # { # 'a' => 'x' # }, # { # 'b' => 'x' # } # ], # 'name' => 'hash0154: re_keys (restrict=0)', # 'schema' => [ # 'hash', # { # 're_keys' => { # '[ab]' => 'int' # }, # 're_keys.restrict' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:re_keys' # ], # 'valid_inputs' => [ # {}, # { # 'a' => 1 # }, # { # 'b' => 1 # }, # { # 'c' => 'x' # } # ] # } # Subtest: (tags=clause:re_keys, type, type:hash) hash0154: re_keys (restrict=0) ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - valid input [3] ok 6 - invalid input [0] ok 7 - invalid input [1] ok 8 - validator (rt=full) returns hash 1..8 ok 141 - (tags=clause:re_keys, type, type:hash) hash0154: re_keys (restrict=0) # { # 'invalid_inputs' => [ # { # 'a' => 1 # }, # { # 'a' => [ # 'b' # ] # } # ], # 'name' => 'hash0155: re_keys + array[of] (test nested loop variable in implementation)', # 'schema' => [ # 'hash', # { # 're_keys' => { # '[ab]' => [ # 'array', # { # 'of' => 'int' # } # ] # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:re_keys' # ], # 'valid_inputs' => [ # {}, # { # 'a' => [] # }, # { # 'a' => [ # 1 # ] # } # ] # } # Subtest: (tags=clause:re_keys, type, type:hash) hash0155: re_keys + array[of] (test nested loop variable in implementation) ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - validator (rt=full) returns hash 1..7 ok 142 - (tags=clause:re_keys, type, type:hash) hash0155: re_keys + array[of] (test nested loop variable in implementation) # { # 'input' => {}, # 'name' => 'hash0156: req_keys: (ok, empty req_keys, empty keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0156: req_keys: (ok, empty req_keys, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:req_keys, type, type:hash) hash0156: req_keys: (ok, empty req_keys, empty keys in input) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0157: req_keys: (ok, empty req_keys, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0157: req_keys: (ok, empty req_keys, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:req_keys, type, type:hash) hash0157: req_keys: (ok, empty req_keys, extra keys in input) # { # 'input' => { # 'a' => 1, # 'b' => 1 # }, # 'name' => 'hash0158: req_keys: (ok)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0158: req_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:req_keys, type, type:hash) hash0158: req_keys: (ok) # { # 'input' => { # 'a' => 1, # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0159: req_keys: (ok, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0159: req_keys: (ok, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:req_keys, type, type:hash) hash0159: req_keys: (ok, extra keys in input) # { # 'input' => { # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0160: req_keys: (nok, missing req keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0160: req_keys: (nok, missing req keys in input) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:req_keys, type, type:hash) hash0160: req_keys: (nok, missing req keys in input) # { # 'input' => {}, # 'name' => 'hash0161: req_all_keys: (ok, empty req_all_keys, empty keys in input)', # 'schema' => [ # 'hash', # { # 'req_all_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all_keys, type, type:hash) hash0161: req_all_keys: (ok, empty req_all_keys, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:req_all_keys, type, type:hash) hash0161: req_all_keys: (ok, empty req_all_keys, empty keys in input) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0162: req_all_keys: (ok, empty req_all_keys, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_all_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all_keys, type, type:hash) hash0162: req_all_keys: (ok, empty req_all_keys, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:req_all_keys, type, type:hash) hash0162: req_all_keys: (ok, empty req_all_keys, extra keys in input) # { # 'input' => { # 'a' => 1, # 'b' => 1 # }, # 'name' => 'hash0163: req_all_keys: (ok)', # 'schema' => [ # 'hash', # { # 'req_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all_keys, type, type:hash) hash0163: req_all_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:req_all_keys, type, type:hash) hash0163: req_all_keys: (ok) # { # 'input' => { # 'a' => 1, # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0164: req_all_keys: (ok, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all_keys, type, type:hash) hash0164: req_all_keys: (ok, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:req_all_keys, type, type:hash) hash0164: req_all_keys: (ok, extra keys in input) # { # 'input' => { # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0165: req_all_keys: (nok, missing req keys in input)', # 'schema' => [ # 'hash', # { # 'req_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_all_keys, type, type:hash) hash0165: req_all_keys: (nok, missing req keys in input) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:req_all_keys, type, type:hash) hash0165: req_all_keys: (nok, missing req keys in input) # { # 'input' => {}, # 'name' => 'hash0166: req_all: (ok, empty req_all, empty keys in input)', # 'schema' => [ # 'hash', # { # 'req_all' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all, type, type:hash) hash0166: req_all: (ok, empty req_all, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:req_all, type, type:hash) hash0166: req_all: (ok, empty req_all, empty keys in input) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0167: req_all: (ok, empty req_all, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_all' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all, type, type:hash) hash0167: req_all: (ok, empty req_all, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:req_all, type, type:hash) hash0167: req_all: (ok, empty req_all, extra keys in input) # { # 'input' => { # 'a' => 1, # 'b' => 1 # }, # 'name' => 'hash0168: req_all: (ok)', # 'schema' => [ # 'hash', # { # 'req_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all, type, type:hash) hash0168: req_all: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:req_all, type, type:hash) hash0168: req_all: (ok) # { # 'input' => { # 'a' => 1, # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0169: req_all: (ok, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_all, type, type:hash) hash0169: req_all: (ok, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:req_all, type, type:hash) hash0169: req_all: (ok, extra keys in input) # { # 'input' => { # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0170: req_all: (nok, missing req keys in input)', # 'schema' => [ # 'hash', # { # 'req_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_all' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_all, type, type:hash) hash0170: req_all: (nok, missing req keys in input) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:req_all, type, type:hash) hash0170: req_all: (nok, missing req keys in input) # { # 'input' => {}, # 'name' => 'hash0171: allowed_keys: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0171: allowed_keys: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:allowed_keys, type, type:hash) hash0171: allowed_keys: (ok, empty keys in input) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0172: allowed_keys: (ok)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0172: allowed_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:allowed_keys, type, type:hash) hash0172: allowed_keys: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0173: allowed_keys: (nok, keys outside allowed list)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0173: allowed_keys: (nok, keys outside allowed list) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:allowed_keys, type, type:hash) hash0173: allowed_keys: (nok, keys outside allowed list) # { # 'input' => {}, # 'name' => 'hash0174: allowed_keys_re: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0174: allowed_keys_re: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:allowed_keys_re, type, type:hash) hash0174: allowed_keys_re: (ok, empty keys in input) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0175: allowed_keys_re: (ok)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0175: allowed_keys_re: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:allowed_keys_re, type, type:hash) hash0175: allowed_keys_re: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0176: allowed_keys_re: (nok, keys outside allowed regex)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0176: allowed_keys_re: (nok, keys outside allowed regex) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:allowed_keys_re, type, type:hash) hash0176: allowed_keys_re: (nok, keys outside allowed regex) # { # 'input' => {}, # 'name' => 'hash0177: forbidden_keys: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0177: forbidden_keys: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 164 - (tags=clause:forbidden_keys, type, type:hash) hash0177: forbidden_keys: (ok, empty keys in input) # { # 'input' => { # 'd' => 1, # 'e' => undef # }, # 'name' => 'hash0178: forbidden_keys: (ok)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0178: forbidden_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 165 - (tags=clause:forbidden_keys, type, type:hash) hash0178: forbidden_keys: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0179: forbidden_keys: (nok, keys in forbidden list)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0179: forbidden_keys: (nok, keys in forbidden list) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 166 - (tags=clause:forbidden_keys, type, type:hash) hash0179: forbidden_keys: (nok, keys in forbidden list) # { # 'input' => {}, # 'name' => 'hash0180: forbidden_keys_re: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0180: forbidden_keys_re: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 167 - (tags=clause:forbidden_keys_re, type, type:hash) hash0180: forbidden_keys_re: (ok, empty keys in input) # { # 'input' => { # 'd' => 1, # 'e' => undef # }, # 'name' => 'hash0181: forbidden_keys_re: (ok)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0181: forbidden_keys_re: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:forbidden_keys_re, type, type:hash) hash0181: forbidden_keys_re: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0182: forbidden_keys_re: (nok, keys in forbidden regex)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0182: forbidden_keys_re: (nok, keys in forbidden regex) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 169 - (tags=clause:forbidden_keys_re, type, type:hash) hash0182: forbidden_keys_re: (nok, keys in forbidden regex) # { # 'input' => {}, # 'name' => 'hash0183: choose_one_key: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0183: choose_one_key: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:choose_one_key, type, type:hash) hash0183: choose_one_key: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0184: choose_one_key: (ok, a)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0184: choose_one_key: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:choose_one_key, type, type:hash) hash0184: choose_one_key: (ok, a) # { # 'input' => { # 'a' => 0, # 'd' => 0 # }, # 'name' => 'hash0185: choose_one_key: (ok, a+d)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0185: choose_one_key: (ok, a+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 172 - (tags=clause:choose_one_key, type, type:hash) hash0185: choose_one_key: (ok, a+d) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0186: choose_one_key: (ok, b)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0186: choose_one_key: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:choose_one_key, type, type:hash) hash0186: choose_one_key: (ok, b) # { # 'input' => { # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0187: choose_one_key: (ok, b+d)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0187: choose_one_key: (ok, b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:choose_one_key, type, type:hash) hash0187: choose_one_key: (ok, b+d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0188: choose_one_key: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one_key' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_one_key, type, type:hash) hash0188: choose_one_key: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:choose_one_key, type, type:hash) hash0188: choose_one_key: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0189: choose_one: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0189: choose_one: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:choose_one, type, type:hash) hash0189: choose_one: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0190: choose_one: (ok, a)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0190: choose_one: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 177 - (tags=clause:choose_one, type, type:hash) hash0190: choose_one: (ok, a) # { # 'input' => { # 'a' => 0, # 'd' => 0 # }, # 'name' => 'hash0191: choose_one: (ok, a+d)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0191: choose_one: (ok, a+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 178 - (tags=clause:choose_one, type, type:hash) hash0191: choose_one: (ok, a+d) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0192: choose_one: (ok, b)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0192: choose_one: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 179 - (tags=clause:choose_one, type, type:hash) hash0192: choose_one: (ok, b) # { # 'input' => { # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0193: choose_one: (ok, b+d)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0193: choose_one: (ok, b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 180 - (tags=clause:choose_one, type, type:hash) hash0193: choose_one: (ok, b+d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0194: choose_one: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_one' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_one, type, type:hash) hash0194: choose_one: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 181 - (tags=clause:choose_one, type, type:hash) hash0194: choose_one: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0195: choose_all_keys: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0195: choose_all_keys: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 182 - (tags=clause:choose_all_keys, type, type:hash) hash0195: choose_all_keys: (ok, empty) # { # 'input' => { # 'd' => 0 # }, # 'name' => 'hash0196: choose_all_keys: (ok, d)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0196: choose_all_keys: (ok, d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 183 - (tags=clause:choose_all_keys, type, type:hash) hash0196: choose_all_keys: (ok, d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0197: choose_all_keys: (ok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0197: choose_all_keys: (ok, a+b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 184 - (tags=clause:choose_all_keys, type, type:hash) hash0197: choose_all_keys: (ok, a+b) # { # 'input' => { # 'a' => 0, # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0198: choose_all_keys: (ok, a+b+d)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0198: choose_all_keys: (ok, a+b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 185 - (tags=clause:choose_all_keys, type, type:hash) hash0198: choose_all_keys: (ok, a+b+d) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0199: choose_all_keys: (nok, a)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0199: choose_all_keys: (nok, a) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 186 - (tags=clause:choose_all_keys, type, type:hash) hash0199: choose_all_keys: (nok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0200: choose_all_keys: (nok, b)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_all_keys, type, type:hash) hash0200: choose_all_keys: (nok, b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 187 - (tags=clause:choose_all_keys, type, type:hash) hash0200: choose_all_keys: (nok, b) # { # 'input' => {}, # 'name' => 'hash0201: choose_all: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0201: choose_all: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 188 - (tags=clause:choose_all, type, type:hash) hash0201: choose_all: (ok, empty) # { # 'input' => { # 'd' => 0 # }, # 'name' => 'hash0202: choose_all: (ok, d)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0202: choose_all: (ok, d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 189 - (tags=clause:choose_all, type, type:hash) hash0202: choose_all: (ok, d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0203: choose_all: (ok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0203: choose_all: (ok, a+b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 190 - (tags=clause:choose_all, type, type:hash) hash0203: choose_all: (ok, a+b) # { # 'input' => { # 'a' => 0, # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0204: choose_all: (ok, a+b+d)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 1 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0204: choose_all: (ok, a+b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 191 - (tags=clause:choose_all, type, type:hash) hash0204: choose_all: (ok, a+b+d) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0205: choose_all: (nok, a)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0205: choose_all: (nok, a) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 192 - (tags=clause:choose_all, type, type:hash) hash0205: choose_all: (nok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0206: choose_all: (nok, b)', # 'schema' => [ # 'hash', # { # 'choose_all' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:choose_all' # ], # 'valid' => 0 # } # Subtest: (tags=clause:choose_all, type, type:hash) hash0206: choose_all: (nok, b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 193 - (tags=clause:choose_all, type, type:hash) hash0206: choose_all: (nok, b) # { # 'input' => {}, # 'name' => 'hash0207: req_one_key: (nok, empty)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one_key' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_one_key, type, type:hash) hash0207: req_one_key: (nok, empty) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 194 - (tags=clause:req_one_key, type, type:hash) hash0207: req_one_key: (nok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0208: req_one_key: (ok, a)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_one_key, type, type:hash) hash0208: req_one_key: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 195 - (tags=clause:req_one_key, type, type:hash) hash0208: req_one_key: (ok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0209: req_one_key: (ok, b)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_one_key, type, type:hash) hash0209: req_one_key: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 196 - (tags=clause:req_one_key, type, type:hash) hash0209: req_one_key: (ok, b) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0210: req_one_key: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one_key' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_one_key, type, type:hash) hash0210: req_one_key: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 197 - (tags=clause:req_one_key, type, type:hash) hash0210: req_one_key: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0211: req_one: (nok, empty)', # 'schema' => [ # 'hash', # { # 'req_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_one, type, type:hash) hash0211: req_one: (nok, empty) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 198 - (tags=clause:req_one, type, type:hash) hash0211: req_one: (nok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0212: req_one: (ok, a)', # 'schema' => [ # 'hash', # { # 'req_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_one, type, type:hash) hash0212: req_one: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 199 - (tags=clause:req_one, type, type:hash) hash0212: req_one: (ok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0213: req_one: (ok, b)', # 'schema' => [ # 'hash', # { # 'req_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_one, type, type:hash) hash0213: req_one: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 200 - (tags=clause:req_one, type, type:hash) hash0213: req_one: (ok, b) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0214: req_one: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'req_one' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_one' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_one, type, type:hash) hash0214: req_one: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 201 - (tags=clause:req_one, type, type:hash) hash0214: req_one: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0215: req_some_keys: (nok, empty)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0215: req_some_keys: (nok, empty) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 202 - (tags=clause:req_some_keys, type, type:hash) hash0215: req_some_keys: (nok, empty) # { # 'input' => { # 'd' => 0 # }, # 'name' => 'hash0216: req_some_keys: (nok, d)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0216: req_some_keys: (nok, d) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 203 - (tags=clause:req_some_keys, type, type:hash) hash0216: req_some_keys: (nok, d) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0217: req_some_keys: (ok, a)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0217: req_some_keys: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 204 - (tags=clause:req_some_keys, type, type:hash) hash0217: req_some_keys: (ok, a) # { # 'input' => { # 'a' => 0, # 'd' => 0 # }, # 'name' => 'hash0218: req_some_keys: (ok, a+d)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0218: req_some_keys: (ok, a+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 205 - (tags=clause:req_some_keys, type, type:hash) hash0218: req_some_keys: (ok, a+d) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0219: req_some_keys: (ok, b)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0219: req_some_keys: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 206 - (tags=clause:req_some_keys, type, type:hash) hash0219: req_some_keys: (ok, b) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0220: req_some_keys: (ok, c)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0220: req_some_keys: (ok, c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 207 - (tags=clause:req_some_keys, type, type:hash) hash0220: req_some_keys: (ok, c) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0221: req_some_keys: (ok, a+b)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0221: req_some_keys: (ok, a+b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 208 - (tags=clause:req_some_keys, type, type:hash) hash0221: req_some_keys: (ok, a+b) # { # 'input' => { # 'a' => 0, # 'c' => 0 # }, # 'name' => 'hash0222: req_some_keys: (ok, a+c)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0222: req_some_keys: (ok, a+c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 209 - (tags=clause:req_some_keys, type, type:hash) hash0222: req_some_keys: (ok, a+c) # { # 'input' => { # 'b' => 0, # 'c' => 0 # }, # 'name' => 'hash0223: req_some_keys: (ok, b+c)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0223: req_some_keys: (ok, b+c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 210 - (tags=clause:req_some_keys, type, type:hash) hash0223: req_some_keys: (ok, b+c) # { # 'input' => { # 'a' => 0, # 'b' => 0, # 'c' => 0 # }, # 'name' => 'hash0224: req_some_keys: (nok, a+b+c)', # 'schema' => [ # 'hash', # { # 'req_some_keys' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some_keys, type, type:hash) hash0224: req_some_keys: (nok, a+b+c) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 211 - (tags=clause:req_some_keys, type, type:hash) hash0224: req_some_keys: (nok, a+b+c) # { # 'input' => {}, # 'name' => 'hash0225: req_some: (nok, empty)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0225: req_some: (nok, empty) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 212 - (tags=clause:req_some, type, type:hash) hash0225: req_some: (nok, empty) # { # 'input' => { # 'd' => 0 # }, # 'name' => 'hash0226: req_some: (nok, d)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0226: req_some: (nok, d) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 213 - (tags=clause:req_some, type, type:hash) hash0226: req_some: (nok, d) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0227: req_some: (ok, a)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0227: req_some: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 214 - (tags=clause:req_some, type, type:hash) hash0227: req_some: (ok, a) # { # 'input' => { # 'a' => 0, # 'd' => 0 # }, # 'name' => 'hash0228: req_some: (ok, a+d)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0228: req_some: (ok, a+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 215 - (tags=clause:req_some, type, type:hash) hash0228: req_some: (ok, a+d) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0229: req_some: (ok, b)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0229: req_some: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 216 - (tags=clause:req_some, type, type:hash) hash0229: req_some: (ok, b) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0230: req_some: (ok, c)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0230: req_some: (ok, c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 217 - (tags=clause:req_some, type, type:hash) hash0230: req_some: (ok, c) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0231: req_some: (ok, a+b)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0231: req_some: (ok, a+b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 218 - (tags=clause:req_some, type, type:hash) hash0231: req_some: (ok, a+b) # { # 'input' => { # 'a' => 0, # 'c' => 0 # }, # 'name' => 'hash0232: req_some: (ok, a+c)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0232: req_some: (ok, a+c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 219 - (tags=clause:req_some, type, type:hash) hash0232: req_some: (ok, a+c) # { # 'input' => { # 'b' => 0, # 'c' => 0 # }, # 'name' => 'hash0233: req_some: (ok, b+c)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0233: req_some: (ok, b+c) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 220 - (tags=clause:req_some, type, type:hash) hash0233: req_some: (ok, b+c) # { # 'input' => { # 'a' => 0, # 'b' => 0, # 'c' => 0 # }, # 'name' => 'hash0234: req_some: (nok, a+b+c)', # 'schema' => [ # 'hash', # { # 'req_some' => [ # 1, # 2, # [ # 'a', # 'b', # 'c' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_some' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_some, type, type:hash) hash0234: req_some: (nok, a+b+c) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 221 - (tags=clause:req_some, type, type:hash) hash0234: req_some: (nok, a+b+c) # { # 'input' => {}, # 'name' => 'hash0235: dep_any: (ok, empty)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0235: dep_any: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 222 - (tags=type, type:hash) hash0235: dep_any: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0236: dep_any: (nok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0236: dep_any: (nok, a specified without d1/d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 223 - (tags=type, type:hash) hash0236: dep_any: (nok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0237: dep_any: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0237: dep_any: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 224 - (tags=type, type:hash) hash0237: dep_any: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0238: dep_any: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0238: dep_any: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 225 - (tags=type, type:hash) hash0238: dep_any: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0239: dep_any: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0239: dep_any: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 226 - (tags=type, type:hash) hash0239: dep_any: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0240: dep_any: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0240: dep_any: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 227 - (tags=type, type:hash) hash0240: dep_any: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0241: dep_all: (ok, empty)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0241: dep_all: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 228 - (tags=type, type:hash) hash0241: dep_all: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0242: dep_all: (nok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0242: dep_all: (nok, a specified without d1/d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 229 - (tags=type, type:hash) hash0242: dep_all: (nok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0243: dep_all: (nok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0243: dep_all: (nok, a specified with d1) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 230 - (tags=type, type:hash) hash0243: dep_all: (nok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0244: dep_all: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0244: dep_all: (ok, a specified with d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 231 - (tags=type, type:hash) hash0244: dep_all: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0245: dep_all: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0245: dep_all: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 232 - (tags=type, type:hash) hash0245: dep_all: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0246: dep_all: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0246: dep_all: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 233 - (tags=type, type:hash) hash0246: dep_all: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0247: req_dep_any: (ok, empty)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0247: req_dep_any: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 234 - (tags=type, type:hash) hash0247: req_dep_any: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0248: req_dep_any: (ok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0248: req_dep_any: (ok, a specified without d1/d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 235 - (tags=type, type:hash) hash0248: req_dep_any: (ok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0249: req_dep_any: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0249: req_dep_any: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 236 - (tags=type, type:hash) hash0249: req_dep_any: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0250: req_dep_any: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0250: req_dep_any: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 237 - (tags=type, type:hash) hash0250: req_dep_any: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0251: req_dep_any: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0251: req_dep_any: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 238 - (tags=type, type:hash) hash0251: req_dep_any: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0 # }, # 'name' => 'hash0252: req_dep_any: (ok, no a with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0252: req_dep_any: (ok, no a with d1) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 239 - (tags=type, type:hash) hash0252: req_dep_any: (ok, no a with d1) # { # 'input' => { # 'd2' => 0 # }, # 'name' => 'hash0253: req_dep_any: (ok, no a with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0253: req_dep_any: (ok, no a with d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 240 - (tags=type, type:hash) hash0253: req_dep_any: (ok, no a with d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0254: req_dep_any: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0254: req_dep_any: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 241 - (tags=type, type:hash) hash0254: req_dep_any: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0255: req_dep_all: (ok, empty)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0255: req_dep_all: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 242 - (tags=type, type:hash) hash0255: req_dep_all: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0256: req_dep_all: (ok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0256: req_dep_all: (ok, a specified without d1/d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 243 - (tags=type, type:hash) hash0256: req_dep_all: (ok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0257: req_dep_all: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0257: req_dep_all: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 244 - (tags=type, type:hash) hash0257: req_dep_all: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0258: req_dep_all: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0258: req_dep_all: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 245 - (tags=type, type:hash) hash0258: req_dep_all: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0259: req_dep_all: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0259: req_dep_all: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 246 - (tags=type, type:hash) hash0259: req_dep_all: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0 # }, # 'name' => 'hash0260: req_dep_all: (ok, no a with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0260: req_dep_all: (ok, no a with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 247 - (tags=type, type:hash) hash0260: req_dep_all: (ok, no a with d1) # { # 'input' => { # 'd2' => 0 # }, # 'name' => 'hash0261: req_dep_all: (ok, no a with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0261: req_dep_all: (ok, no a with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 248 - (tags=type, type:hash) hash0261: req_dep_all: (ok, no a with d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0262: req_dep_all: (nok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0262: req_dep_all: (nok, no a with d1 & d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 249 - (tags=type, type:hash) hash0262: req_dep_all: (nok, no a with d1 & d2) ok 250 1..250 ok 8 - 10-type-hash.json # Subtest: 10-type-int.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => -1, # 'name' => 'int0001: type check: must accept -1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0001: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:int) int0001: type check: must accept -1 # { # 'input' => 0, # 'name' => 'int0002: type check: must accept 0', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0002: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:int) int0002: type check: must accept 0 # { # 'input' => 1, # 'name' => 'int0003: type check: must accept 1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0003: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:int) int0003: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'int0004: type check: must reject 1.1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0004: type check: must reject 1.1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:int) int0004: type check: must reject 1.1 # { # 'input' => 'a', # 'name' => 'int0005: type check: must reject a', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:int) int0005: type check: must reject a # { # 'input' => [], # 'name' => 'int0006: type check: must reject []', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0006: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:int) int0006: type check: must reject [] # { # 'input' => {}, # 'name' => 'int0007: type check: must reject {}', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0007: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:int) int0007: type check: must reject {} # { # 'input' => undef, # 'name' => 'int0008: must accept undefined value', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0008: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:int) int0008: must accept undefined value # { # 'input' => undef, # 'name' => 'int0009: defhash_v', # 'schema' => [ # 'int', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:int) int0009: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:defhash_v, type, type:int) int0009: defhash_v # { # 'input' => undef, # 'name' => 'int0010: v', # 'schema' => [ # 'int', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:int) int0010: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:v, type, type:int) int0010: v # { # 'input' => undef, # 'name' => 'int0011: c', # 'schema' => [ # 'int', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:int) int0011: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:c, type, type:int) int0011: c # { # 'input' => undef, # 'name' => 'int0012: default_lang', # 'schema' => [ # 'int', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:int) int0012: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:default_lang, type, type:int) int0012: default_lang # { # 'input' => undef, # 'name' => 'int0013: name', # 'schema' => [ # 'int', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:int) int0013: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:name, type, type:int) int0013: name # { # 'input' => undef, # 'name' => 'int0014: summary', # 'schema' => [ # 'int', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:int) int0014: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:summary, type, type:int) int0014: summary # { # 'input' => undef, # 'name' => 'int0015: description', # 'schema' => [ # 'int', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:int) int0015: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:description, type, type:int) int0015: description # { # 'input' => undef, # 'name' => 'int0016: tags', # 'schema' => [ # 'int', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:int) int0016: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:tags, type, type:int) int0016: tags # { # 'input' => undef, # 'name' => 'int0017: req=0 must accept undefined value', # 'schema' => [ # 'int', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:int) int0017: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:int) int0017: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'int0018: req=1 must reject undefined value', # 'schema' => [ # 'int', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:int) int0018: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:int) int0018: req=1 must reject undefined value # { # 'input' => 2, # 'name' => 'int0019: forbidden=0 must accept defined value', # 'schema' => [ # 'int', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:int) int0019: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:int) int0019: forbidden=0 must accept defined value # { # 'input' => 2, # 'name' => 'int0020: forbidden=1 must reject defined value', # 'schema' => [ # 'int', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:int) int0020: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:int) int0020: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'int0021: default: must accept valid default 1', # 'schema' => [ # 'int*', # 'default', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:int) int0021: default: must accept valid default 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:int) int0021: default: must accept valid default 1 # { # 'input' => undef, # 'name' => 'int0022: default: must reject invalid default []', # 'schema' => [ # 'int*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:int) int0022: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:int) int0022: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0023: clause (dies, unknown clause)', # 'schema' => [ # 'int*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:int) int0023: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 23 - (tags=clause:clause, type, type:int) int0023: clause (dies, unknown clause) # { # 'input' => 2, # 'name' => 'int0024: clause (ok)', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:int) int0024: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:int) int0024: clause (ok) # { # 'input' => 2, # 'name' => 'int0025: clause (ok) + clause nok = nok', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 1 # ], # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:int) int0025: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:int) int0025: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 2, # 'name' => 'int0026: clause (nok)', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 3 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:int) int0026: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:int) int0026: clause (nok) # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0027: clset (dies, unknown clause)', # 'schema' => [ # 'int*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:int) int0027: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:int) int0027: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0028: clset (dies, unknown attr)', # 'schema' => [ # 'int*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:int) int0028: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:int) int0028: clset (dies, unknown attr) # { # 'input' => 2, # 'name' => 'int0029: clset (empty = ok)', # 'schema' => [ # 'int*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0029: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=type, type:int) int0029: clset (empty = ok) # { # 'input' => 2, # 'name' => 'int0030: clset (ignored clause/attr = ok)', # 'schema' => [ # 'int*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:int) int0030: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:int) int0030: clset (ignored clause/attr = ok) # { # 'input' => 2, # 'name' => 'int0031: clset (ok + ok = ok)', # 'schema' => [ # 'int*', # 'clset', # { # 'max' => 2, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:int) int0031: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:int) int0031: clset (ok + ok = ok) # { # 'input' => 2, # 'name' => 'int0032: clset (ok) + clause nok = nok', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 1 # }, # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0032: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:int) int0032: clset (ok) + clause nok = nok # { # 'input' => 2, # 'name' => 'int0033: clset (ok + nok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 1, # 'xmax' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0033: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:int) int0033: clset (ok + nok = nok) # { # 'input' => 2, # 'name' => 'int0034: clset (nok + ok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'max' => 2, # 'min' => 3 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0034: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:int) int0034: clset (nok + ok = nok) # { # 'input' => 2, # 'name' => 'int0035: clset (nok + nok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 3, # 'xmax' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0035: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:int) int0035: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'int0036: ok', # 'schema' => [ # 'int', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:int) int0036: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, type, type:int) int0036: ok # { # 'input' => undef, # 'name' => 'int0037: ok + op not (nok)', # 'schema' => [ # 'int', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:int) int0037: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, op, op:not, type, type:int) int0037: ok + op not (nok) # { # 'input' => 9, # 'name' => 'int0038: .err_level=error (clause=div_by, ok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0038: .err_level=error (clause=div_by, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:int) int0038: .err_level=error (clause=div_by, ok) # { # 'input' => 8, # 'name' => 'int0039: .err_level=error (clause=div_by, nok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0039: .err_level=error (clause=div_by, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:int) int0039: .err_level=error (clause=div_by, nok) # { # 'input' => 9, # 'name' => 'int0040: .err_level=warn (clause=div_by, ok)', # 'schema' => [ # 'int', # 'div_by', # 3, # 'div_by.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0040: .err_level=warn (clause=div_by, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:int) int0040: .err_level=warn (clause=div_by, ok) # { # 'input' => 8, # 'name' => 'int0041: .err_level=warn (clause=div_by, nok)', # 'schema' => [ # 'int*', # 'div_by', # 3, # 'div_by.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0041: .err_level=warn (clause=div_by, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:int) int0041: .err_level=warn (clause=div_by, nok) # { # 'input' => 1, # 'name' => 'int0042: is: must accept same value', # 'schema' => [ # 'int', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:int) int0042: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:int) int0042: is: must accept same value # { # 'input' => 1, # 'name' => 'int0043: is: must reject different value', # 'schema' => [ # 'int', # 'is', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:int) int0043: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:int) int0043: is: must reject different value # { # 'input' => 1, # 'name' => 'int0044: !is (nok)', # 'schema' => [ # 'int', # '!is', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:int) int0044: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:int) int0044: !is (nok) # { # 'input' => 1, # 'name' => 'int0045: !is (ok)', # 'schema' => [ # 'int', # '!is', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:int) int0045: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:int) int0045: !is (ok) # { # 'input' => 1, # 'name' => 'int0046: is.op=not (nok)', # 'schema' => [ # 'int', # 'is', # 1, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:int) int0046: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:int) int0046: is.op=not (nok) # { # 'input' => 1, # 'name' => 'int0047: is.op=not (ok)', # 'schema' => [ # 'int', # 'is', # 2, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:int) int0047: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:int) int0047: is.op=not (ok) # { # 'input' => 1, # 'name' => 'int0048: is& (no items)', # 'schema' => [ # 'int', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0048: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0048: is& (no items) # { # 'input' => 1, # 'name' => 'int0049: is& (ok)', # 'schema' => [ # 'int', # 'is&', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0049: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0049: is& (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0050: is& (nok + ok)', # 'schema' => [ # 'int', # 'is&', # [ # 2, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0050: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0050: is& (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0051: is& (ok + nok)', # 'schema' => [ # 'int', # 'is&', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0051: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0051: is& (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0052: is& (nok + nok)', # 'schema' => [ # 'int', # 'is&', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0052: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0052: is& (nok + nok) # { # 'input' => 1, # 'name' => 'int0053: is.op=and (no items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0053: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=type, type:int) int0053: is.op=and (no items) # { # 'input' => 1, # 'name' => 'int0054: is.op=and (ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0054: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:int) int0054: is.op=and (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0055: is.op=and (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0055: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:int) int0055: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0056: is.op=and (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0056: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:int) int0056: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0057: is.op=and (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0057: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:int) int0057: is.op=and (nok + nok) # { # 'input' => 1, # 'name' => 'int0058: is| (no items)', # 'schema' => [ # 'int', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0058: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0058: is| (no items) # { # 'input' => 1, # 'name' => 'int0059: is| (ok)', # 'schema' => [ # 'int', # 'is|', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0059: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0059: is| (ok) # { # 'input' => 1, # 'name' => 'int0060: is| (nok + ok)', # 'schema' => [ # 'int', # 'is|', # [ # 2, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0060: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0060: is| (nok + ok) # { # 'input' => 1, # 'name' => 'int0061: is| (ok + nok)', # 'schema' => [ # 'int', # 'is|', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0061: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0061: is| (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0062: is| (nok + nok)', # 'schema' => [ # 'int', # 'is|', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0062: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0062: is| (nok + nok) # { # 'input' => 1, # 'name' => 'int0063: is.op=or (no items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0063: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:int) int0063: is.op=or (no items) # { # 'input' => 1, # 'name' => 'int0064: is.op=or (ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0064: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:int) int0064: is.op=or (ok) # { # 'input' => 1, # 'name' => 'int0065: is.op=or (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0065: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:int) int0065: is.op=or (nok + ok) # { # 'input' => 1, # 'name' => 'int0066: is.op=or (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0066: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:int) int0066: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0067: is.op=or (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0067: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:int) int0067: is.op=or (nok + nok) # { # 'input' => 1, # 'name' => 'int0068: is.op=none (empty items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0068: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:int) int0068: is.op=none (empty items) # { # 'input' => 1, # 'name' => 'int0069: is.op=none (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0069: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:int) int0069: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0070: is.op=none (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0070: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:int) int0070: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0071: is.op=none (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0071: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:int) int0071: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0072: is.op=none (ok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0072: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:int) int0072: is.op=none (ok + ok) # { # 'input' => 1, # 'name' => 'int0073: in: must accept valid choices', # 'schema' => [ # 'int', # 'in', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:int) int0073: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:int) int0073: in: must accept valid choices # { # 'input' => 1, # 'name' => 'int0074: in: must reject empty choices', # 'schema' => [ # 'int', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:int) int0074: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:int) int0074: in: must reject empty choices # { # 'input' => 1, # 'name' => 'int0075: !in (nok)', # 'schema' => [ # 'int', # '!in', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:int) int0075: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:int) int0075: !in (nok) # { # 'input' => 1, # 'name' => 'int0076: !in (ok)', # 'schema' => [ # 'int', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:int) int0076: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:int) int0076: !in (ok) # { # 'input' => 1, # 'name' => 'int0077: in.op=not (nok)', # 'schema' => [ # 'int', # 'in', # [ # 1, # 2 # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:int) int0077: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:int) int0077: in.op=not (nok) # { # 'input' => 1, # 'name' => 'int0078: in.op=not (ok)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:int) int0078: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:int) int0078: in.op=not (ok) # { # 'input' => 1, # 'name' => 'int0079: in& (no items)', # 'schema' => [ # 'int', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0079: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0079: in& (no items) # { # 'input' => 1, # 'name' => 'int0080: in& (ok)', # 'schema' => [ # 'int', # 'in&', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0080: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0080: in& (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0081: in& (nok + ok)', # 'schema' => [ # 'int', # 'in&', # [ # [], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0081: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0081: in& (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0082: in& (ok + nok)', # 'schema' => [ # 'int', # 'in&', # [ # [ # 1, # 2 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0082: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0082: in& (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0083: in& (nok + nok)', # 'schema' => [ # 'int', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0083: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0083: in& (nok + nok) # { # 'input' => 1, # 'name' => 'int0084: in.op=and (no items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0084: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=type, type:int) int0084: in.op=and (no items) # { # 'input' => 1, # 'name' => 'int0085: in.op=and (ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0085: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:int) int0085: in.op=and (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0086: in.op=and (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0086: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:int) int0086: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0087: in.op=and (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0087: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:int) int0087: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0088: in.op=and (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0088: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:int) int0088: in.op=and (nok + nok) # { # 'input' => 1, # 'name' => 'int0089: in| (no items)', # 'schema' => [ # 'int', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0089: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0089: in| (no items) # { # 'input' => 1, # 'name' => 'int0090: in| (ok)', # 'schema' => [ # 'int', # 'in|', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0090: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0090: in| (ok) # { # 'input' => 1, # 'name' => 'int0091: in| (nok + ok)', # 'schema' => [ # 'int', # 'in|', # [ # [], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0091: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0091: in| (nok + ok) # { # 'input' => 1, # 'name' => 'int0092: in| (ok + nok)', # 'schema' => [ # 'int', # 'in|', # [ # [ # 1, # 2 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0092: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0092: in| (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0093: in| (nok + nok)', # 'schema' => [ # 'int', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0093: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0093: in| (nok + nok) # { # 'input' => 1, # 'name' => 'int0094: in.op=or (no items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0094: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:int) int0094: in.op=or (no items) # { # 'input' => 1, # 'name' => 'int0095: in.op=or (ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0095: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:int) int0095: in.op=or (ok) # { # 'input' => 1, # 'name' => 'int0096: in.op=or (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0096: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:int) int0096: in.op=or (nok + ok) # { # 'input' => 1, # 'name' => 'int0097: in.op=or (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0097: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:int) int0097: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0098: in.op=or (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0098: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:int) int0098: in.op=or (nok + nok) # { # 'input' => 1, # 'name' => 'int0099: in.op=none (empty items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0099: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:int) int0099: in.op=none (empty items) # { # 'input' => 1, # 'name' => 'int0100: in.op=none (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0100: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:int) int0100: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0101: in.op=none (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0101: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:int) int0101: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0102: in.op=none (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0102: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:int) int0102: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0103: in.op=none (ok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0103: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:int) int0103: in.op=none (ok + ok) # { # 'input' => 2, # 'name' => 'int0104: min: 2 -3', # 'schema' => [ # 'int', # 'min', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:int) int0104: min: 2 -3 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:int) int0104: min: 2 -3 # { # 'input' => 2, # 'name' => 'int0105: min: 2 2', # 'schema' => [ # 'int', # 'min', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:int) int0105: min: 2 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:int) int0105: min: 2 2 # { # 'input' => -3, # 'name' => 'int0106: min: -3 2 -> fail', # 'schema' => [ # 'int', # 'min', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:int) int0106: min: -3 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:int) int0106: min: -3 2 -> fail # { # 'input' => 2, # 'name' => 'int0107: xmin: 2 -3', # 'schema' => [ # 'int', # 'xmin', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:int) int0107: xmin: 2 -3 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:int) int0107: xmin: 2 -3 # { # 'input' => 2, # 'name' => 'int0108: xmin: 2 2 -> fail', # 'schema' => [ # 'int', # 'xmin', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:int) int0108: xmin: 2 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:int) int0108: xmin: 2 2 -> fail # { # 'input' => -3, # 'name' => 'int0109: xmin: -3 2 -> fail', # 'schema' => [ # 'int', # 'xmin', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:int) int0109: xmin: -3 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:int) int0109: xmin: -3 2 -> fail # { # 'input' => 2, # 'name' => 'int0110: max: 2 -3 -> fail', # 'schema' => [ # 'int', # 'max', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:int) int0110: max: 2 -3 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:int) int0110: max: 2 -3 -> fail # { # 'input' => 2, # 'name' => 'int0111: max: 2 2', # 'schema' => [ # 'int', # 'max', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:int) int0111: max: 2 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:int) int0111: max: 2 2 # { # 'input' => -3, # 'name' => 'int0112: max: -3 2', # 'schema' => [ # 'int', # 'max', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:int) int0112: max: -3 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:int) int0112: max: -3 2 # { # 'input' => 2, # 'name' => 'int0113: xmax: 2 -3 -> fail', # 'schema' => [ # 'int', # 'xmax', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:int) int0113: xmax: 2 -3 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:int) int0113: xmax: 2 -3 -> fail # { # 'input' => 2, # 'name' => 'int0114: xmax: 2 2 -> fail', # 'schema' => [ # 'int', # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:int) int0114: xmax: 2 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:int) int0114: xmax: 2 2 -> fail # { # 'input' => -3, # 'name' => 'int0115: xmax: -3 2', # 'schema' => [ # 'int', # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:int) int0115: xmax: -3 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:int) int0115: xmax: -3 2 # { # 'input' => 2, # 'name' => 'int0116: between: 2 -3 & 4', # 'schema' => [ # 'int', # 'between', # [ # -3, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0116: between: 2 -3 & 4 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:int) int0116: between: 2 -3 & 4 # { # 'input' => 2, # 'name' => 'int0117: between: 2 -3 & 2', # 'schema' => [ # 'int', # 'between', # [ # -3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0117: between: 2 -3 & 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:int) int0117: between: 2 -3 & 2 # { # 'input' => 2, # 'name' => 'int0118: between: 2 2 & 2', # 'schema' => [ # 'int', # 'between', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0118: between: 2 2 & 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:int) int0118: between: 2 2 & 2 # { # 'input' => -3, # 'name' => 'int0119: between: -3 2 & 4 -> fail', # 'schema' => [ # 'int', # 'between', # [ # 2, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:int) int0119: between: -3 2 & 4 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:int) int0119: between: -3 2 & 4 -> fail # { # 'input' => '2', # 'name' => 'int0120: xbetween: 2 -3 & 4', # 'schema' => [ # 'int', # 'xbetween', # [ # -3, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:int) int0120: xbetween: 2 -3 & 4 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:int) int0120: xbetween: 2 -3 & 4 # { # 'input' => '2', # 'name' => 'int0121: xbetween: 2 -3 & 2 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # -3, # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0121: xbetween: 2 -3 & 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:int) int0121: xbetween: 2 -3 & 2 -> fail # { # 'input' => '2', # 'name' => 'int0122: xbetween: 2 2 & 2 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # '2', # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0122: xbetween: 2 2 & 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:int) int0122: xbetween: 2 2 & 2 -> fail # { # 'input' => -3, # 'name' => 'int0123: xbetween: -3 2 & 4 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # '2', # '4' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0123: xbetween: -3 2 & 4 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:int) int0123: xbetween: -3 2 & 4 -> fail # { # 'input' => -3, # 'name' => 'int0124: !between (nok)', # 'schema' => [ # 'int', # '!between', # [ # -3, # -3 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:int) int0124: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:int) int0124: !between (nok) # { # 'input' => -3, # 'name' => 'int0125: !between (ok)', # 'schema' => [ # 'int', # '!between', # [ # '2', # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:int) int0125: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:int) int0125: !between (ok) # { # 'input' => -3, # 'name' => 'int0126: between.op=not (nok)', # 'schema' => [ # 'int', # 'between', # [ # -3, # -3 # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:int) int0126: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:int) int0126: between.op=not (nok) # { # 'input' => -3, # 'name' => 'int0127: between.op=not (ok)', # 'schema' => [ # 'int', # 'between', # [ # '2', # '2' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:int) int0127: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:int) int0127: between.op=not (ok) # { # 'input' => -3, # 'name' => 'int0128: between& (no items)', # 'schema' => [ # 'int', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0128: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0128: between& (no items) # { # 'input' => -3, # 'name' => 'int0129: between& (ok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0129: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0129: between& (ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0130: between& (nok + ok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0130: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0130: between& (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0131: between& (ok + nok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0131: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0131: between& (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0132: between& (nok + nok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0132: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0132: between& (nok + nok) # { # 'input' => -3, # 'name' => 'int0133: between.op=and (no items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0133: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=type, type:int) int0133: between.op=and (no items) # { # 'input' => -3, # 'name' => 'int0134: between.op=and (ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0134: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:int) int0134: between.op=and (ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0135: between.op=and (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0135: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:int) int0135: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0136: between.op=and (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0136: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:int) int0136: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0137: between.op=and (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0137: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:int) int0137: between.op=and (nok + nok) # { # 'input' => -3, # 'name' => 'int0138: between| (no items)', # 'schema' => [ # 'int', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0138: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0138: between| (no items) # { # 'input' => -3, # 'name' => 'int0139: between| (ok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0139: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0139: between| (ok) # { # 'input' => -3, # 'name' => 'int0140: between| (nok + ok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0140: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0140: between| (nok + ok) # { # 'input' => -3, # 'name' => 'int0141: between| (ok + nok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0141: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0141: between| (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0142: between| (nok + nok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0142: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0142: between| (nok + nok) # { # 'input' => -3, # 'name' => 'int0143: between.op=or (no items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0143: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:int) int0143: between.op=or (no items) # { # 'input' => -3, # 'name' => 'int0144: between.op=or (ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0144: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:int) int0144: between.op=or (ok) # { # 'input' => -3, # 'name' => 'int0145: between.op=or (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0145: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:int) int0145: between.op=or (nok + ok) # { # 'input' => -3, # 'name' => 'int0146: between.op=or (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0146: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:int) int0146: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0147: between.op=or (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0147: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:int) int0147: between.op=or (nok + nok) # { # 'input' => -3, # 'name' => 'int0148: between.op=none (empty items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0148: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:int) int0148: between.op=none (empty items) # { # 'input' => -3, # 'name' => 'int0149: between.op=none (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0149: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:int) int0149: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0150: between.op=none (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0150: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:int) int0150: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0151: between.op=none (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0151: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:int) int0151: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0152: between.op=none (ok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0152: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:int) int0152: between.op=none (ok + ok) # { # 'input' => 10, # 'name' => 'int0153: mod: (nok)', # 'schema' => [ # 'int', # 'mod', # [ # 3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:mod' # ], # 'valid' => 0 # } # Subtest: (tags=clause:mod, type, type:int) int0153: mod: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:mod, type, type:int) int0153: mod: (nok) # { # 'input' => 11, # 'name' => 'int0154: mod: (ok)', # 'schema' => [ # 'int', # 'mod', # [ # 3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:mod' # ], # 'valid' => 1 # } # Subtest: (tags=clause:mod, type, type:int) int0154: mod: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:mod, type, type:int) int0154: mod: (ok) # { # 'input' => 7, # 'name' => 'int0155: div_by: (nok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:div_by' # ], # 'valid' => 0 # } # Subtest: (tags=clause:div_by, type, type:int) int0155: div_by: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:div_by, type, type:int) int0155: div_by: (nok) # { # 'input' => 6, # 'name' => 'int0156: div_by: (ok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:div_by' # ], # 'valid' => 1 # } # Subtest: (tags=clause:div_by, type, type:int) int0156: div_by: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:div_by, type, type:int) int0156: div_by: (ok) ok 157 1..157 ok 9 - 10-type-int.json # Subtest: 10-type-num.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => '-1.1', # 'name' => 'num0001: type check: must accept -1.1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0001: type check: must accept -1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:num) num0001: type check: must accept -1.1 # { # 'input' => -1, # 'name' => 'num0002: type check: must accept -1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0002: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:num) num0002: type check: must accept -1 # { # 'input' => 0, # 'name' => 'num0003: type check: must accept 0', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0003: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:num) num0003: type check: must accept 0 # { # 'input' => 1, # 'name' => 'num0004: type check: must accept 1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0004: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:num) num0004: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'num0005: type check: must accept 1.1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0005: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:num) num0005: type check: must accept 1.1 # { # 'input' => 'a', # 'name' => 'num0006: type check: must reject a', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0006: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:num) num0006: type check: must reject a # { # 'input' => [], # 'name' => 'num0007: type check: must reject []', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0007: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:num) num0007: type check: must reject [] # { # 'input' => {}, # 'name' => 'num0008: type check: must reject {}', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0008: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:num) num0008: type check: must reject {} # { # 'input' => undef, # 'name' => 'num0009: must accept undefined value', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0009: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=type, type:num) num0009: must accept undefined value # { # 'input' => undef, # 'name' => 'num0010: defhash_v', # 'schema' => [ # 'num', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:num) num0010: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:defhash_v, type, type:num) num0010: defhash_v # { # 'input' => undef, # 'name' => 'num0011: v', # 'schema' => [ # 'num', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:num) num0011: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:v, type, type:num) num0011: v # { # 'input' => undef, # 'name' => 'num0012: c', # 'schema' => [ # 'num', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:num) num0012: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:c, type, type:num) num0012: c # { # 'input' => undef, # 'name' => 'num0013: default_lang', # 'schema' => [ # 'num', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:num) num0013: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:default_lang, type, type:num) num0013: default_lang # { # 'input' => undef, # 'name' => 'num0014: name', # 'schema' => [ # 'num', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:num) num0014: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:name, type, type:num) num0014: name # { # 'input' => undef, # 'name' => 'num0015: summary', # 'schema' => [ # 'num', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:num) num0015: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:summary, type, type:num) num0015: summary # { # 'input' => undef, # 'name' => 'num0016: description', # 'schema' => [ # 'num', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:num) num0016: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:description, type, type:num) num0016: description # { # 'input' => undef, # 'name' => 'num0017: tags', # 'schema' => [ # 'num', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:num) num0017: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:tags, type, type:num) num0017: tags # { # 'input' => undef, # 'name' => 'num0018: req=0 must accept undefined value', # 'schema' => [ # 'num', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:num) num0018: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:num) num0018: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'num0019: req=1 must reject undefined value', # 'schema' => [ # 'num', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:num) num0019: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:req, type, type:num) num0019: req=1 must reject undefined value # { # 'input' => '1.1', # 'name' => 'num0020: forbidden=0 must accept defined value', # 'schema' => [ # 'num', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:num) num0020: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:num) num0020: forbidden=0 must accept defined value # { # 'input' => '1.1', # 'name' => 'num0021: forbidden=1 must reject defined value', # 'schema' => [ # 'num', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:num) num0021: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:forbidden, type, type:num) num0021: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'num0022: default: must accept valid default 1.1', # 'schema' => [ # 'num*', # 'default', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:num) num0022: default: must accept valid default 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:num) num0022: default: must accept valid default 1.1 # { # 'input' => undef, # 'name' => 'num0023: default: must reject invalid default []', # 'schema' => [ # 'num*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:num) num0023: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:default, type, type:num) num0023: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0024: clause (dies, unknown clause)', # 'schema' => [ # 'num*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:num) num0024: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 24 - (tags=clause:clause, type, type:num) num0024: clause (dies, unknown clause) # { # 'input' => '1.1', # 'name' => 'num0025: clause (ok)', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:num) num0025: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:num) num0025: clause (ok) # { # 'input' => '1.1', # 'name' => 'num0026: clause (ok) + clause nok = nok', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 1 # ], # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:num) num0026: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:num) num0026: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0027: clause (nok)', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:num) num0027: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=clause:clause, type, type:num) num0027: clause (nok) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0028: clset (dies, unknown clause)', # 'schema' => [ # 'num*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:num) num0028: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:num) num0028: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0029: clset (dies, unknown attr)', # 'schema' => [ # 'num*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:num) num0029: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 29 - (tags=clause:clset, type, type:num) num0029: clset (dies, unknown attr) # { # 'input' => '1.1', # 'name' => 'num0030: clset (empty = ok)', # 'schema' => [ # 'num*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0030: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=type, type:num) num0030: clset (empty = ok) # { # 'input' => '1.1', # 'name' => 'num0031: clset (ignored clause/attr = ok)', # 'schema' => [ # 'num*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:num) num0031: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:num) num0031: clset (ignored clause/attr = ok) # { # 'input' => '1.1', # 'name' => 'num0032: clset (ok + ok = ok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => '1.1', # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:num) num0032: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:num) num0032: clset (ok + ok = ok) # { # 'input' => '1.1', # 'name' => 'num0033: clset (ok) + clause nok = nok', # 'schema' => [ # 'num*', # 'clset', # { # 'min' => 1 # }, # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0033: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:num) num0033: clset (ok) + clause nok = nok # { # 'input' => '1.1', # 'name' => 'num0034: clset (ok + nok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => 1, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0034: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:num) num0034: clset (ok + nok = nok) # { # 'input' => '1.1', # 'name' => 'num0035: clset (nok + ok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => '1.1', # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0035: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:num) num0035: clset (nok + ok = nok) # { # 'input' => '1.1', # 'name' => 'num0036: clset (nok + nok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => 1, # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0036: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:clset, type, type:num) num0036: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'num0037: ok', # 'schema' => [ # 'num', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:num) num0037: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, type, type:num) num0037: ok # { # 'input' => undef, # 'name' => 'num0038: ok + op not (nok)', # 'schema' => [ # 'num', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:num) num0038: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:ok, op, op:not, type, type:num) num0038: ok + op not (nok) # { # 'input' => '0.1', # 'name' => 'num0039: .err_level=error (clause=min, ok)', # 'schema' => [ # 'num', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0039: .err_level=error (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:num) num0039: .err_level=error (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'num0040: .err_level=error (clause=min, nok)', # 'schema' => [ # 'num', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0040: .err_level=error (clause=min, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:num) num0040: .err_level=error (clause=min, nok) # { # 'input' => '0.1', # 'name' => 'num0041: .err_level=warn (clause=min, ok)', # 'schema' => [ # 'num', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0041: .err_level=warn (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:num) num0041: .err_level=warn (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'num0042: .err_level=warn (clause=min, nok)', # 'schema' => [ # 'num*', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0042: .err_level=warn (clause=min, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=attr, attr:err_level, type, type:num) num0042: .err_level=warn (clause=min, nok) # { # 'input' => '1.1', # 'name' => 'num0043: is: must accept same value', # 'schema' => [ # 'num', # 'is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:num) num0043: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:num) num0043: is: must accept same value # { # 'input' => '1.1', # 'name' => 'num0044: is: must reject different value', # 'schema' => [ # 'num', # 'is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:num) num0044: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, type, type:num) num0044: is: must reject different value # { # 'input' => '1.1', # 'name' => 'num0045: !is (nok)', # 'schema' => [ # 'num', # '!is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:num) num0045: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:num) num0045: !is (nok) # { # 'input' => '1.1', # 'name' => 'num0046: !is (ok)', # 'schema' => [ # 'num', # '!is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:num) num0046: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, opshortcut, type, type:num) num0046: !is (ok) # { # 'input' => '1.1', # 'name' => 'num0047: is.op=not (nok)', # 'schema' => [ # 'num', # 'is', # '1.1', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:num) num0047: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:num) num0047: is.op=not (nok) # { # 'input' => '1.1', # 'name' => 'num0048: is.op=not (ok)', # 'schema' => [ # 'num', # 'is', # '1.2', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:num) num0048: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:not, type, type:num) num0048: is.op=not (ok) # { # 'input' => '1.1', # 'name' => 'num0049: is& (no items)', # 'schema' => [ # 'num', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0049: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0049: is& (no items) # { # 'input' => '1.1', # 'name' => 'num0050: is& (ok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0050: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0050: is& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0051: is& (nok + ok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0051: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0051: is& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0052: is& (ok + nok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0052: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0052: is& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0053: is& (nok + nok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0053: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0053: is& (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0054: is.op=and (no items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0054: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=type, type:num) num0054: is.op=and (no items) # { # 'input' => '1.1', # 'name' => 'num0055: is.op=and (ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0055: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:num) num0055: is.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0056: is.op=and (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0056: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:num) num0056: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0057: is.op=and (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0057: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:num) num0057: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0058: is.op=and (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0058: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:and, type, type:num) num0058: is.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0059: is| (no items)', # 'schema' => [ # 'num', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0059: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0059: is| (no items) # { # 'input' => '1.1', # 'name' => 'num0060: is| (ok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0060: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0060: is| (ok) # { # 'input' => '1.1', # 'name' => 'num0061: is| (nok + ok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0061: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0061: is| (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0062: is| (ok + nok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0062: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0062: is| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0063: is| (nok + nok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0063: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0063: is| (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0064: is.op=or (no items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0064: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:num) num0064: is.op=or (no items) # { # 'input' => '1.1', # 'name' => 'num0065: is.op=or (ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0065: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:num) num0065: is.op=or (ok) # { # 'input' => '1.1', # 'name' => 'num0066: is.op=or (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0066: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:num) num0066: is.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0067: is.op=or (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0067: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:num) num0067: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0068: is.op=or (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0068: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:or, type, type:num) num0068: is.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0069: is.op=none (empty items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0069: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:num) num0069: is.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'num0070: is.op=none (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0070: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:num) num0070: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0071: is.op=none (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0071: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:num) num0071: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0072: is.op=none (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0072: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:num) num0072: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0073: is.op=none (ok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0073: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:is, op, op:none, type, type:num) num0073: is.op=none (ok + ok) # { # 'input' => '1.1', # 'name' => 'num0074: in: must accept valid choices', # 'schema' => [ # 'num', # 'in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:num) num0074: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:num) num0074: in: must accept valid choices # { # 'input' => '1.1', # 'name' => 'num0075: in: must reject empty choices', # 'schema' => [ # 'num', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:num) num0075: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, type, type:num) num0075: in: must reject empty choices # { # 'input' => '1.1', # 'name' => 'num0076: !in (nok)', # 'schema' => [ # 'num', # '!in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:num) num0076: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:num) num0076: !in (nok) # { # 'input' => '1.1', # 'name' => 'num0077: !in (ok)', # 'schema' => [ # 'num', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:num) num0077: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, opshortcut, type, type:num) num0077: !in (ok) # { # 'input' => '1.1', # 'name' => 'num0078: in.op=not (nok)', # 'schema' => [ # 'num', # 'in', # [ # '1.1', # '1.2' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:num) num0078: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:num) num0078: in.op=not (nok) # { # 'input' => '1.1', # 'name' => 'num0079: in.op=not (ok)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:num) num0079: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:not, type, type:num) num0079: in.op=not (ok) # { # 'input' => '1.1', # 'name' => 'num0080: in& (no items)', # 'schema' => [ # 'num', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0080: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0080: in& (no items) # { # 'input' => '1.1', # 'name' => 'num0081: in& (ok)', # 'schema' => [ # 'num', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0081: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0081: in& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0082: in& (nok + ok)', # 'schema' => [ # 'num', # 'in&', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0082: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0082: in& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0083: in& (ok + nok)', # 'schema' => [ # 'num', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0083: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0083: in& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0084: in& (nok + nok)', # 'schema' => [ # 'num', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0084: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0084: in& (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0085: in.op=and (no items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0085: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=type, type:num) num0085: in.op=and (no items) # { # 'input' => '1.1', # 'name' => 'num0086: in.op=and (ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0086: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:num) num0086: in.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0087: in.op=and (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0087: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:num) num0087: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0088: in.op=and (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0088: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:num) num0088: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0089: in.op=and (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0089: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:and, type, type:num) num0089: in.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0090: in| (no items)', # 'schema' => [ # 'num', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0090: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0090: in| (no items) # { # 'input' => '1.1', # 'name' => 'num0091: in| (ok)', # 'schema' => [ # 'num', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0091: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0091: in| (ok) # { # 'input' => '1.1', # 'name' => 'num0092: in| (nok + ok)', # 'schema' => [ # 'num', # 'in|', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0092: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0092: in| (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0093: in| (ok + nok)', # 'schema' => [ # 'num', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0093: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0093: in| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0094: in| (nok + nok)', # 'schema' => [ # 'num', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0094: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0094: in| (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0095: in.op=or (no items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0095: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:num) num0095: in.op=or (no items) # { # 'input' => '1.1', # 'name' => 'num0096: in.op=or (ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0096: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:num) num0096: in.op=or (ok) # { # 'input' => '1.1', # 'name' => 'num0097: in.op=or (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0097: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:num) num0097: in.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0098: in.op=or (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0098: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:num) num0098: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0099: in.op=or (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0099: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:or, type, type:num) num0099: in.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0100: in.op=none (empty items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0100: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:num) num0100: in.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'num0101: in.op=none (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0101: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:num) num0101: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0102: in.op=none (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0102: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:num) num0102: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0103: in.op=none (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0103: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:num) num0103: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0104: in.op=none (ok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0104: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:in, op, op:none, type, type:num) num0104: in.op=none (ok + ok) # { # 'input' => '2.1', # 'name' => 'num0105: min: 2.1 -3.1', # 'schema' => [ # 'num', # 'min', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:num) num0105: min: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:num) num0105: min: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'num0106: min: 2.1 2.1', # 'schema' => [ # 'num', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:num) num0106: min: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:num) num0106: min: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'num0107: min: -3.1 2.1 -> fail', # 'schema' => [ # 'num', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:num) num0107: min: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:min, type, type:num) num0107: min: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0108: xmin: 2.1 -3.1', # 'schema' => [ # 'num', # 'xmin', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:num) num0108: xmin: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:num) num0108: xmin: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'num0109: xmin: 2.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:num) num0109: xmin: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:num) num0109: xmin: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0110: xmin: -3.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:num) num0110: xmin: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xmin, type, type:num) num0110: xmin: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0111: max: 2.1 -3.1 -> fail', # 'schema' => [ # 'num', # 'max', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:num) num0111: max: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:num) num0111: max: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0112: max: 2.1 2.1', # 'schema' => [ # 'num', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:num) num0112: max: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:num) num0112: max: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'num0113: max: -3.1 2.1', # 'schema' => [ # 'num', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:num) num0113: max: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:max, type, type:num) num0113: max: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'num0114: xmax: 2.1 -3.1 -> fail', # 'schema' => [ # 'num', # 'xmax', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:num) num0114: xmax: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:num) num0114: xmax: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0115: xmax: 2.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:num) num0115: xmax: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:num) num0115: xmax: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0116: xmax: -3.1 2.1', # 'schema' => [ # 'num', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:num) num0116: xmax: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:xmax, type, type:num) num0116: xmax: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'num0117: between: 2.1 -3.1 & 4.1', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0117: between: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:num) num0117: between: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'num0118: between: 2.1 -3.1 & 2.1', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0118: between: 2.1 -3.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:num) num0118: between: 2.1 -3.1 & 2.1 # { # 'input' => '2.1', # 'name' => 'num0119: between: 2.1 2.1 & 2.1', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0119: between: 2.1 2.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:num) num0119: between: 2.1 2.1 & 2.1 # { # 'input' => '-3.1', # 'name' => 'num0120: between: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:num) num0120: between: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:between, type, type:num) num0120: between: -3.1 2.1 & 4.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0121: xbetween: 2.1 -3.1 & 4.1', # 'schema' => [ # 'num', # 'xbetween', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:num) num0121: xbetween: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:num) num0121: xbetween: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'num0122: xbetween: 2.1 -3.1 & 2.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0122: xbetween: 2.1 -3.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:num) num0122: xbetween: 2.1 -3.1 & 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0123: xbetween: 2.1 2.1 & 2.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0123: xbetween: 2.1 2.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:num) num0123: xbetween: 2.1 2.1 & 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0124: xbetween: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0124: xbetween: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:xbetween, type, type:num) num0124: xbetween: -3.1 2.1 & 4.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0125: !between (nok)', # 'schema' => [ # 'num', # '!between', # [ # '-3.1', # '-3.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:num) num0125: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:num) num0125: !between (nok) # { # 'input' => '-3.1', # 'name' => 'num0126: !between (ok)', # 'schema' => [ # 'num', # '!between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:num) num0126: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, opshortcut, type, type:num) num0126: !between (ok) # { # 'input' => '-3.1', # 'name' => 'num0127: between.op=not (nok)', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '-3.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:num) num0127: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:num) num0127: between.op=not (nok) # { # 'input' => '-3.1', # 'name' => 'num0128: between.op=not (ok)', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '2.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:num) num0128: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:not, type, type:num) num0128: between.op=not (ok) # { # 'input' => '-3.1', # 'name' => 'num0129: between& (no items)', # 'schema' => [ # 'num', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0129: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0129: between& (no items) # { # 'input' => '-3.1', # 'name' => 'num0130: between& (ok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0130: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0130: between& (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0131: between& (nok + ok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0131: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0131: between& (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0132: between& (ok + nok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0132: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0132: between& (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0133: between& (nok + nok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0133: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0133: between& (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0134: between.op=and (no items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0134: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=type, type:num) num0134: between.op=and (no items) # { # 'input' => '-3.1', # 'name' => 'num0135: between.op=and (ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0135: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:num) num0135: between.op=and (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0136: between.op=and (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0136: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:num) num0136: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0137: between.op=and (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0137: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:num) num0137: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0138: between.op=and (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0138: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:and, type, type:num) num0138: between.op=and (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0139: between| (no items)', # 'schema' => [ # 'num', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0139: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0139: between| (no items) # { # 'input' => '-3.1', # 'name' => 'num0140: between| (ok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0140: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0140: between| (ok) # { # 'input' => '-3.1', # 'name' => 'num0141: between| (nok + ok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0141: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0141: between| (nok + ok) # { # 'input' => '-3.1', # 'name' => 'num0142: between| (ok + nok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0142: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0142: between| (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0143: between| (nok + nok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0143: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0143: between| (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0144: between.op=or (no items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0144: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:num) num0144: between.op=or (no items) # { # 'input' => '-3.1', # 'name' => 'num0145: between.op=or (ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0145: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:num) num0145: between.op=or (ok) # { # 'input' => '-3.1', # 'name' => 'num0146: between.op=or (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0146: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:num) num0146: between.op=or (nok + ok) # { # 'input' => '-3.1', # 'name' => 'num0147: between.op=or (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0147: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:num) num0147: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0148: between.op=or (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0148: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:or, type, type:num) num0148: between.op=or (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0149: between.op=none (empty items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0149: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:num) num0149: between.op=none (empty items) # { # 'input' => '-3.1', # 'name' => 'num0150: between.op=none (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0150: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:num) num0150: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0151: between.op=none (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0151: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:num) num0151: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0152: between.op=none (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0152: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:num) num0152: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0153: between.op=none (ok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0153: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:between, op, op:none, type, type:num) num0153: between.op=none (ok + ok) ok 154 1..154 ok 10 - 10-type-num.json # Subtest: 10-type-obj.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 1, # 'name' => 'obj0001: can (nok)', # 'schema' => [ # 'obj', # { # 'can' => 'foo' # } # ], # 'tags' => [ # 'type', # 'type:obj', # 'clause:can' # ], # 'valid' => 0 # } # Subtest: (tags=clause:can, type, type:obj) obj0001: can (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=clause:can, type, type:obj) obj0001: can (nok) # { # 'input' => 1, # 'name' => 'obj0002: isa (nok)', # 'schema' => [ # 'obj', # { # 'isa' => 'foo' # } # ], # 'tags' => [ # 'type', # 'type:obj', # 'clause:isa' # ], # 'valid' => 0 # } # Subtest: (tags=clause:isa, type, type:obj) obj0002: isa (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=clause:isa, type, type:obj) obj0002: isa (nok) ok 3 1..3 ok 11 - 10-type-obj.json # Subtest: 10-type-str.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => 0, # 'name' => 'str0001: type check: must accept 0', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:str) str0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'str0002: type check: must accept 1.1', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:str) str0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'str0003: type check: must accept ', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:str) str0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'str0004: type check: must accept str # ', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:str) str0004: type check: must accept str # # { # 'input' => [], # 'name' => 'str0005: type check: must reject []', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:str) str0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:str) str0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'str0006: type check: must reject {}', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:str) str0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:str) str0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'str0007: must accept undefined value', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:str) str0007: must accept undefined value # { # 'input' => undef, # 'name' => 'str0008: defhash_v', # 'schema' => [ # 'str', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:str) str0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:str) str0008: defhash_v # { # 'input' => undef, # 'name' => 'str0009: v', # 'schema' => [ # 'str', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:str) str0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:str) str0009: v # { # 'input' => undef, # 'name' => 'str0010: c', # 'schema' => [ # 'str', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:str) str0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:str) str0010: c # { # 'input' => undef, # 'name' => 'str0011: default_lang', # 'schema' => [ # 'str', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:str) str0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:str) str0011: default_lang # { # 'input' => undef, # 'name' => 'str0012: name', # 'schema' => [ # 'str', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:str) str0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:str) str0012: name # { # 'input' => undef, # 'name' => 'str0013: summary', # 'schema' => [ # 'str', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:str) str0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:str) str0013: summary # { # 'input' => undef, # 'name' => 'str0014: description', # 'schema' => [ # 'str', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:str) str0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:str) str0014: description # { # 'input' => undef, # 'name' => 'str0015: tags', # 'schema' => [ # 'str', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:str) str0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:str) str0015: tags # { # 'input' => undef, # 'name' => 'str0016: req=0 must accept undefined value', # 'schema' => [ # 'str', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:str) str0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:str) str0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'str0017: req=1 must reject undefined value', # 'schema' => [ # 'str', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:str) str0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:str) str0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'str0018: forbidden=0 must accept defined value', # 'schema' => [ # 'str', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:str) str0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:str) str0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'str0019: forbidden=1 must reject defined value', # 'schema' => [ # 'str', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:str) str0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:str) str0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'str0020: default: must accept valid default a', # 'schema' => [ # 'str*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:str) str0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:str) str0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'str0021: default: must reject invalid default []', # 'schema' => [ # 'str*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:str) str0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:str) str0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0022: clause (dies, unknown clause)', # 'schema' => [ # 'str*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:str) str0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:str) str0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'str0023: clause (ok)', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:str) str0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:str) str0023: clause (ok) # { # 'input' => 'a', # 'name' => 'str0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:str) str0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:str) str0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0025: clause (nok)', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:str) str0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:str) str0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0026: clset (dies, unknown clause)', # 'schema' => [ # 'str*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:str) str0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:str) str0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0027: clset (dies, unknown attr)', # 'schema' => [ # 'str*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:str) str0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:str) str0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'str0028: clset (empty = ok)', # 'schema' => [ # 'str*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:str) str0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'str0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'str*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:str) str0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:str) str0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'str0030: clset (ok + ok = ok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:str) str0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:str) str0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'str0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'str*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:str) str0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'str0032: clset (ok + nok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:str) str0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'str0033: clset (nok + ok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:str) str0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'str0034: clset (nok + nok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:str) str0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'str0035: ok', # 'schema' => [ # 'str', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:str) str0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:str) str0035: ok # { # 'input' => undef, # 'name' => 'str0036: ok + op not (nok)', # 'schema' => [ # 'str', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:str) str0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:str) str0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'str0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:str) str0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'str0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:str) str0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'str0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'str', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:str) str0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'str0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'str*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:str) str0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'str0041: is: must accept same value', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:str) str0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:str) str0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'str0042: is: must reject different value', # 'schema' => [ # 'str', # 'is', # 'b' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:str) str0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:str) str0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'str0043: !is (nok)', # 'schema' => [ # 'str', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:str) str0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:str) str0043: !is (nok) # { # 'input' => 'a', # 'name' => 'str0044: !is (ok)', # 'schema' => [ # 'str', # '!is', # 'b' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:str) str0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:str) str0044: !is (ok) # { # 'input' => 'a', # 'name' => 'str0045: is.op=not (nok)', # 'schema' => [ # 'str', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:str) str0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:str) str0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'str0046: is.op=not (ok)', # 'schema' => [ # 'str', # 'is', # 'b', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:str) str0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:str) str0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'str0047: is& (no items)', # 'schema' => [ # 'str', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0047: is& (no items) # { # 'input' => 'a', # 'name' => 'str0048: is& (ok)', # 'schema' => [ # 'str', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0049: is& (nok + ok)', # 'schema' => [ # 'str', # 'is&', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0050: is& (ok + nok)', # 'schema' => [ # 'str', # 'is&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0051: is& (nok + nok)', # 'schema' => [ # 'str', # 'is&', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'str0052: is.op=and (no items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:str) str0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'str0053: is.op=and (ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:str) str0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0054: is.op=and (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:str) str0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0055: is.op=and (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:str) str0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0056: is.op=and (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:str) str0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'str0057: is| (no items)', # 'schema' => [ # 'str', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0057: is| (no items) # { # 'input' => 'a', # 'name' => 'str0058: is| (ok)', # 'schema' => [ # 'str', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0058: is| (ok) # { # 'input' => 'a', # 'name' => 'str0059: is| (nok + ok)', # 'schema' => [ # 'str', # 'is|', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'str0060: is| (ok + nok)', # 'schema' => [ # 'str', # 'is|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0061: is| (nok + nok)', # 'schema' => [ # 'str', # 'is|', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'str0062: is.op=or (no items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:str) str0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'str0063: is.op=or (ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:str) str0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'str0064: is.op=or (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:str) str0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'str0065: is.op=or (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:str) str0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0066: is.op=or (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:str) str0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'str0067: is.op=none (empty items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:str) str0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'str0068: is.op=none (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:str) str0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0069: is.op=none (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:str) str0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0070: is.op=none (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:str) str0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0071: is.op=none (ok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:str) str0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0072: in: must accept valid choices', # 'schema' => [ # 'str', # 'in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:str) str0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:str) str0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'str0073: in: must reject empty choices', # 'schema' => [ # 'str', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:str) str0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:str) str0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'str0074: !in (nok)', # 'schema' => [ # 'str', # '!in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:str) str0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:str) str0074: !in (nok) # { # 'input' => 'a', # 'name' => 'str0075: !in (ok)', # 'schema' => [ # 'str', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:str) str0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:str) str0075: !in (ok) # { # 'input' => 'a', # 'name' => 'str0076: in.op=not (nok)', # 'schema' => [ # 'str', # 'in', # [ # 'a', # 'b' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:str) str0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:str) str0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'str0077: in.op=not (ok)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:str) str0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:str) str0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'str0078: in& (no items)', # 'schema' => [ # 'str', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0078: in& (no items) # { # 'input' => 'a', # 'name' => 'str0079: in& (ok)', # 'schema' => [ # 'str', # 'in&', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0080: in& (nok + ok)', # 'schema' => [ # 'str', # 'in&', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0081: in& (ok + nok)', # 'schema' => [ # 'str', # 'in&', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0082: in& (nok + nok)', # 'schema' => [ # 'str', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'str0083: in.op=and (no items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:str) str0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'str0084: in.op=and (ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:str) str0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0085: in.op=and (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:str) str0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0086: in.op=and (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:str) str0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0087: in.op=and (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:str) str0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'str0088: in| (no items)', # 'schema' => [ # 'str', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0088: in| (no items) # { # 'input' => 'a', # 'name' => 'str0089: in| (ok)', # 'schema' => [ # 'str', # 'in|', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0089: in| (ok) # { # 'input' => 'a', # 'name' => 'str0090: in| (nok + ok)', # 'schema' => [ # 'str', # 'in|', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'str0091: in| (ok + nok)', # 'schema' => [ # 'str', # 'in|', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0092: in| (nok + nok)', # 'schema' => [ # 'str', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'str0093: in.op=or (no items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:str) str0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'str0094: in.op=or (ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:str) str0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'str0095: in.op=or (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:str) str0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'str0096: in.op=or (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:str) str0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0097: in.op=or (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:str) str0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'str0098: in.op=none (empty items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:str) str0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'str0099: in.op=none (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:str) str0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0100: in.op=none (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:str) str0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0101: in.op=none (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:str) str0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0102: in.op=none (ok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:str) str0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0103: min: a ', # 'schema' => [ # 'str', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:str) str0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:str) str0103: min: a # { # 'input' => 'a', # 'name' => 'str0104: min: a a', # 'schema' => [ # 'str', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:str) str0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:str) str0104: min: a a # { # 'input' => '', # 'name' => 'str0105: min: a -> fail', # 'schema' => [ # 'str', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:str) str0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:str) str0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'str0106: xmin: a ', # 'schema' => [ # 'str', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:str) str0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:str) str0106: xmin: a # { # 'input' => 'a', # 'name' => 'str0107: xmin: a a -> fail', # 'schema' => [ # 'str', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:str) str0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:str) str0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'str0108: xmin: a -> fail', # 'schema' => [ # 'str', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:str) str0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:str) str0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'str0109: max: a -> fail', # 'schema' => [ # 'str', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:str) str0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:str) str0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'str0110: max: a a', # 'schema' => [ # 'str', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:str) str0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:str) str0110: max: a a # { # 'input' => '', # 'name' => 'str0111: max: a', # 'schema' => [ # 'str', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:str) str0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:str) str0111: max: a # { # 'input' => 'a', # 'name' => 'str0112: xmax: a -> fail', # 'schema' => [ # 'str', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:str) str0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:str) str0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'str0113: xmax: a a -> fail', # 'schema' => [ # 'str', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:str) str0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:str) str0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'str0114: xmax: a', # 'schema' => [ # 'str', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:str) str0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:str) str0114: xmax: a # { # 'input' => 'a', # 'name' => 'str0115: between: a & ab', # 'schema' => [ # 'str', # 'between', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0115: between: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:str) str0115: between: a & ab # { # 'input' => 'a', # 'name' => 'str0116: between: a & a', # 'schema' => [ # 'str', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:str) str0116: between: a & a # { # 'input' => 'a', # 'name' => 'str0117: between: a a & a', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:str) str0117: between: a a & a # { # 'input' => '', # 'name' => 'str0118: between: a & ab -> fail', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:str) str0118: between: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:str) str0118: between: a & ab -> fail # { # 'input' => 'a', # 'name' => 'str0119: xbetween: a & ab', # 'schema' => [ # 'str', # 'xbetween', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:str) str0119: xbetween: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:str) str0119: xbetween: a & ab # { # 'input' => 'a', # 'name' => 'str0120: xbetween: a & a -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:str) str0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'str0121: xbetween: a a & a -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:str) str0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'str0122: xbetween: a & ab -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0122: xbetween: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:str) str0122: xbetween: a & ab -> fail # { # 'input' => '', # 'name' => 'str0123: !between (nok)', # 'schema' => [ # 'str', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:str) str0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:str) str0123: !between (nok) # { # 'input' => '', # 'name' => 'str0124: !between (ok)', # 'schema' => [ # 'str', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:str) str0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:str) str0124: !between (ok) # { # 'input' => '', # 'name' => 'str0125: between.op=not (nok)', # 'schema' => [ # 'str', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:str) str0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:str) str0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'str0126: between.op=not (ok)', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:str) str0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:str) str0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'str0127: between& (no items)', # 'schema' => [ # 'str', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0127: between& (no items) # { # 'input' => '', # 'name' => 'str0128: between& (ok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0129: between& (nok + ok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0130: between& (ok + nok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0131: between& (nok + nok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'str0132: between.op=and (no items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:str) str0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'str0133: between.op=and (ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:str) str0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0134: between.op=and (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:str) str0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0135: between.op=and (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:str) str0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0136: between.op=and (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:str) str0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'str0137: between| (no items)', # 'schema' => [ # 'str', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0137: between| (no items) # { # 'input' => '', # 'name' => 'str0138: between| (ok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0138: between| (ok) # { # 'input' => '', # 'name' => 'str0139: between| (nok + ok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'str0140: between| (ok + nok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0141: between| (nok + nok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'str0142: between.op=or (no items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:str) str0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'str0143: between.op=or (ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:str) str0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'str0144: between.op=or (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:str) str0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'str0145: between.op=or (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:str) str0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0146: between.op=or (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:str) str0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'str0147: between.op=none (empty items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:str) str0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'str0148: between.op=none (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:str) str0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0149: between.op=none (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:str) str0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0150: between.op=none (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:str) str0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0151: between.op=none (ok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:str) str0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0152: len (ok)', # 'schema' => [ # 'str', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:str) str0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:str) str0152: len (ok) # { # 'input' => 'a', # 'name' => 'str0153: len (nok)', # 'schema' => [ # 'str', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:str) str0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:str) str0153: len (nok) # { # 'input' => 'a', # 'name' => 'str0154: min_len (ok)', # 'schema' => [ # 'str', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:str) str0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:str) str0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'str0155: min_len (nok)', # 'schema' => [ # 'str', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:str) str0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:str) str0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'str0156: max_len (ok)', # 'schema' => [ # 'str', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:str) str0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:str) str0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'str0157: max_len (nok)', # 'schema' => [ # 'str', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:str) str0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:str) str0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'str0158: len_between (ok)', # 'schema' => [ # 'str', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:str) str0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:str) str0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'str0159: len_between (nok)', # 'schema' => [ # 'str', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:str) str0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:str) str0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'str0160: each_index (ok)', # 'schema' => [ # 'str', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:str) str0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:str) str0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'str0161: each_index (nok)', # 'schema' => [ # 'str', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:str) str0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:str) str0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'str0162: each_elem (ok)', # 'schema' => [ # 'str', # 'each_elem', # 'str' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:str) str0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:str) str0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'str0163: each_elem (nok)', # 'schema' => [ # 'str', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:str) str0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:str) str0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'str0170: has', # 'schema' => [ # 'str', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, type, type:str) str0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 164 - (tags=clause:has, type, type:str) str0170: has # { # 'invalid_inputs' => [ # 'abc', # 'ac' # ], # 'name' => 'str0171: has + op.not', # 'schema' => [ # 'str', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'A', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:str) str0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - validator (rt=full) returns hash 1..7 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:str) str0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'str0172: has + op.or', # 'schema' => [ # 'str', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:str) str0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:str) str0172: has + op.or # { # 'invalid_inputs' => [ # 'ac', # '', # 'A', # 'c' # ], # 'name' => 'str0173: has + op.and', # 'schema' => [ # 'str', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:str) str0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - invalid input [3] ok 7 - validator (rt=full) returns hash 1..7 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:str) str0173: has + op.and # { # 'input' => 'a', # 'name' => 'str0177: encoding: (ok)', # 'schema' => [ # 'str', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:str) str0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:str) str0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'str', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:str) str0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:str) str0178: encoding: (dies, unknown encoding) # { # 'input' => 'a', # 'name' => 'str0179: match: (ok)', # 'schema' => [ # 'str', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:str) str0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:str) str0179: match: (ok) # { # 'input' => 'A', # 'name' => 'str0180: match: (nok)', # 'schema' => [ # 'str', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:str) str0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:str) str0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0181: match: (dies, invalid regex)', # 'schema' => [ # 'str', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:str) str0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:str) str0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'str0182: is_re: 1 (ok)', # 'schema' => [ # 'str', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:str) str0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:str) str0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'str0183: is_re: 1 (nok)', # 'schema' => [ # 'str', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:str) str0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:str) str0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'str0184: is_re: 0 (ok)', # 'schema' => [ # 'str', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:str) str0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:str) str0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'str0185: is_re: 0 (nok)', # 'schema' => [ # 'str', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:str) str0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:str) str0185: is_re: 0 (nok) ok 177 1..177 ok 12 - 10-type-str.json # Subtest: 10-type-undef.json # Test version: v0.9.41 (generated by devscripts/gen-type-spectest on Fri Jul 22 01:37:29 2016) # { # 'input' => undef, # 'name' => 'undef0001: ok', # 'schema' => [ # 'undef' # ], # 'tags' => [ # 'type', # 'type:undef' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:undef) undef0001: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:undef) undef0001: ok # { # 'input' => 0, # 'name' => 'undef0002: nok', # 'schema' => [ # 'undef' # ], # 'tags' => [ # 'type', # 'type:undef' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:undef) undef0002: nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:undef) undef0002: nok ok 3 1..3 ok 13 - 10-type-undef.json 1..13 ok t/util-type-date.t ....... # Subtest: coerce_date (Time::Moment) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 1 - coerce_date (Time::Moment) # Subtest: coerce_date (DateTime) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 2 - coerce_date (DateTime) # Subtest: coerce_date (Time::Piece) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 3 - coerce_date (Time::Piece) 1..3 ok Test Summary Report ------------------- t/perl-misc.t (Wstat: 65280 Tests: 2 Failed: 1) Failed test: 2 Non-zero exit status: 255 Parse errors: No plan found in TAP output Files=17, Tests=172, 43 wallclock secs ( 2.90 usr + 0.20 sys = 3.10 CPU) Result: FAIL Failed 1/17 test programs. 1/172 subtests failed. dmake: Error code 255, while making 'test_dynamic' PERLANCAR/Data-Sah-0.87.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Data-Sah-0.87.tar.gz PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz Has already been unwrapped into directory C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1 PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'make' Warning: Prerequisite 'Data::Sah => 0.84' for 'PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz' failed when processing 'PERLANCAR/Data-Sah-0.87.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp share\templates\description.txt blib\lib\auto\share\dist\Perinci-CmdLine-Lite\templates\description.txt cp share\templates\synopsis.txt blib\lib\auto\share\dist\Perinci-CmdLine-Lite\templates\synopsis.txt cp lib/Perinci/CmdLine/Base.pm blib\lib\Perinci\CmdLine\Base.pm cp lib/Perinci/CmdLine/Lite.pm blib\lib\Perinci\CmdLine\Lite.pm PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz dmake -- OK Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'test' Running make test >>> dmake test TEST_VERBOSE=1 Skip blib\lib\auto\share\dist\Perinci-CmdLine-Lite\templates\synopsis.txt (unchanged) Skip blib\lib\auto\share\dist\Perinci-CmdLine-Lite\templates\description.txt (unchanged) "C:\Perl64-5.20\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..2 ok 1 - Perinci/CmdLine/Base.pm loaded ok ok 2 - Perinci/CmdLine/Lite.pm loaded ok ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliZbFPy997: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^msi:^Usage.+^([^\n]*)Options)' # Looks like you failed 2 tests of 2. # Failed test '--help' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clisLIYMrZC: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^msi:^Usage.+^([^\n]*)Options)' # Looks like you failed 2 tests of 2. # Failed test 'extra args is okay' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliql7vb4Ay: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^ms:^Subcommands.+\bsc1\b)' # Looks like you failed 2 tests of 2. # Failed test 'help for cli with subcommands' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliBte6eVCm: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^ms:Do nothing.+^Usage)' # Looks like you failed 2 tests of 3. # Failed test 'help on a subcommand' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 4 tests of 7. # Failed test 'help action' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'climdvl2N2e: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:0\.79)' # Looks like you failed 2 tests of 2. # Failed test '--version' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 1 test of 2. # Failed test 'version action' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clid5aFK1MN: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^$)' # Looks like you failed 2 tests of 2. # Failed test 'default_subcommand' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '100' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'default_subcommand 2' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 2 tests of 5. # Failed test 'subcommands action' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clidthmXl7h: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^144$)' # Looks like you failed 2 tests of 2. # Failed test 'embedded function+meta works' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '100' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'missing required args -> error' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^s:^\[\s*"?200"?,\s*"OK",\s*"abc",\s*\{.*\}\s*\])' # Looks like you failed 2 tests of 2. # Failed test 'common option: --format' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^s:^\[\s*"?200"?,\s*"OK",\s*"abc",\s*\{.*\}\s*\])' # Looks like you failed 2 tests of 2. # Failed test 'common option: --json' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'null # ' # doesn't match '(?^s:^"abc"$)' # Looks like you failed 2 tests of 2. # Failed test 'common option: --naked-res' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^s:^\[\s*"?200"?,\s*"OK",\s*"abc",\s*\{.*\}\s*\])' # Looks like you failed 2 tests of 2. # Failed test 'common option: --no-naked-res' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clin1FxzLmN: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^s:^odd$)' # Looks like you failed 2 tests of 2. # Failed test 'common option: --cmd' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^s:^\[\s*"?200"?,\s*"OK",\s*\[\s*"a",\s*"b"\s*\],\s*\{.*\}\s*\])' # Looks like you failed 2 tests of 2. # Failed test 'json argument' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliLx7jiubx: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:Hello, world)' # Looks like you failed 2 tests of 2. # Failed test 'can handle function which returns naked result' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 9 tests of 11. # Failed test 'call action' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '231' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'unknown value' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '231' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'arg type not str/array' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 2 tests of 4. # Failed test 'cmdline_src (error cases)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliylaWORFE: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo)' # Looks like you failed 2 tests of 2. # Failed test 'file 1' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a1"\s*:\s*"file")' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_srcfilenames_a1"\s*:\s*\[)' # Looks like you failed 3 tests of 3. # Failed test 'file 1 (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliYQMkzYl4: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo\na2=\[bar\n,baz\])' # Looks like you failed 2 tests of 2. # Failed test 'file 2' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a1"\s*:\s*"file")' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a2"\s*:\s*"file")' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_srcfilenames_a1"\s*:\s*\[)' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_srcfilenames_a2"\s*:\s*\[)' # Looks like you failed 5 tests of 5. # Failed test 'file 2 (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '100' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'file, missing required arg' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 5 tests of 7. # Failed test 'cmdline_src (file)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cli_K2ioS8t: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=bar\nbaz)' # Looks like you failed 2 tests of 2. # Failed test 'stdin str' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx: # "-cmdline_src_a1"\s*:\s*"stdin" # )' # Looks like you failed 2 tests of 2. # Failed test 'stdin str (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliR3OOreJ9: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[bar\n,baz\])' # Looks like you failed 2 tests of 2. # Failed test 'stdin array' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clicUvM2DQl: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=bar\nbaz)' # Looks like you failed 2 tests of 2. # Failed test 'stdin + arg set to "-"' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '100' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'stdin + arg set to non "-"' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 5 tests of 6. # Failed test 'cmdline_src (stdin)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliAZyamceR: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo\na2=bar)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_line + from stdin' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a1"\s*:\s*"stdin_line")' # Looks like you failed 2 tests of 2. # Failed test 'stdin_line + from stdin (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliGQYZ0Tdz: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=qux\na2=bar)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_line + from cmdline' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clii8PzLW72: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo\na2=bar\na3=baz)' # Looks like you failed 2 tests of 2. # Failed test 'multi stdin_line' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 4 tests of 5. # Failed test 'cmdline_src (stdin_line)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clisA690adS: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo$)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_file file' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliLLpk095i: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=foo$)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_file file (extra argument)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a1"\s*:\s*"stdin_or_file")' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_srcfilenames_a1"\s*:\s*\[)' # Looks like you failed 3 tests of 3. # Failed test 'stdin_or_file file (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cligZnwndwc: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=bar\nbaz$)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_file stdin str' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliX6aS5JPb: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[bar\n,baz\])' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_file stdin str' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 5 tests of 7. # Failed test 'cmdline_src (stdin_or_file)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cli_L9_oswr: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[foo,bar\n,baz\]$)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_files file' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_src_a1"\s*:\s*"stdin_or_files")' # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 390. # '[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # ' # doesn't match '(?^sx:"-cmdline_srcfilenames_a1"\s*:\s*\[)' # Looks like you failed 3 tests of 3. # Failed test 'stdin_or_files file (special hint arguments passed)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cli4tSWLTNX: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=bar\nbaz$)' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_files stdin str' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliKBxb_USv: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[bar\n,baz\])' # Looks like you failed 2 tests of 2. # Failed test 'stdin_or_files stdin str' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 4 tests of 6. # Failed test 'cmdline_src (stdin_or_files)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliGXZxCaSs: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[x\])' # Looks like you failed 2 tests of 2. # Failed test 'from arg' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliqa4b5a7d: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a1=\[bar,baz\])' # Looks like you failed 2 tests of 2. # Failed test 'from stdin' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 2 tests of 3. # Failed test 'cmdline_src (stdin_or_args)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliuBrigdeF: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:wet)' # Looks like you failed 2 tests of 2. # Failed test 'dry-run (via env, 0)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'clicILGImeQ: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:dry)' # Looks like you failed 2 tests of 2. # Failed test 'dry-run (via env, 1)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliWlw3dZUc: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:dry)' # Looks like you failed 2 tests of 2. # Failed test 'dry-run (via cmdline opt)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 3 tests of 4. # Failed test 'dry-run' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliRScgLp4h: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^mx: # 3 # )' # Looks like you failed 2 tests of 2. # Failed test 'stream input, simple type, chomp on' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliuUh2Rzq5: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^mx: # ^chars \s+ 19\n # ^lines \s+ 3\n # ^words \s+ 4\n # )' # Looks like you failed 2 tests of 2. # Failed test 'stream input, simple type, chomp off' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliZY4iF3Af: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^mx:^keys \s+ 4\n)' # Looks like you failed 2 tests of 2. # Failed test 'stream input, json stream' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliuA9Dm8ut: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^mx: # ^\{\"num\"\:1\}\n # ^\{\"num\"\:2\}\n # ^\{\"num\"\:3\}\n # )' # Looks like you failed 2 tests of 2. # Failed test 'stream result, json stream' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliaY0QxvVH: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^mx: # ^"?1"?\n # ^"?9"?\n # ^"?25"?\n # )' # Looks like you failed 2 tests of 2. # Failed test 'stream input+result, simple type, float validation' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 5 tests of 13. # Failed test 'streaming' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '7' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'cmdline.exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliZHsSSBxs: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:false)' # Looks like you failed 2 tests of 2. # Failed test 'cmdline.result' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliEGXSQx2b: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:null)' # Looks like you failed 2 tests of 2. # Failed test 'cmdline.default_format' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliI6moiFcg: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:\A\z)' # Looks like you failed 2 tests of 2. # Failed test 'cmdline.default_format (overriden by cmdline opt)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'cliGRjTPJIU: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:ARRAY\(0x)' # Looks like you failed 2 tests of 2. # Failed test 'cmdline.skip_format' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 5 tests of 6. # Failed test 'result metadata' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '2' # expected: '0' # Script's stdout: <> # Script's stderr: # Failed test 'answer' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 458. # Structures begin differing at: # $got->[0] = Does not exist # $expected->[0] = '--number' # [] # Looks like you failed 2 tests of 2. # Failed test 'self-completion works' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '2' # expected: '0' # Script's stdout: <> # Script's stderr: # Failed test 'answer' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 458. # Structures begin differing at: # $got->[0] = Does not exist # $expected->[0] = 'sc1' # [] # Looks like you failed 2 tests of 2. # Failed test 'completion of subcommand name' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '2' # expected: '0' # Script's stdout: <> # Script's stderr: # Failed test 'answer' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 458. # Structures begin differing at: # $got->[0] = Does not exist # $expected->[0] = '--number' # [] # Looks like you failed 2 tests of 2. # Failed test 'completion of subcommand option' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 3 tests of 4. # Failed test 'completion' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^s:^6$)' # Looks like you failed 2 tests of 2. # Failed test 'env read' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: <0sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # > # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # '0sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^s:^6$)' # Looks like you failed 2 tests of 2. # Failed test 'default env name prefixed by _ if script name starts with number' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^s:^3$)' # Looks like you failed 2 tests of 2. # Failed test 'turned off via --no-env' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^s:^18$)' # Looks like you failed 2 tests of 2. # Failed test 'attr:env_name' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 4 tests of 5. # Failed test 'env' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=101\nb=201\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'attr:config_dirs' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=104\nb=\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'attr:config_filename' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=104\nb=303\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'attr:config_filename (hash record)' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=104\nb=307\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'attr:config_filename (hash record) + --config-profile' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=\nb=\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'common option: --no-config' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=101\nb=201\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'common option: --config-path' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:a=111\nb=201\nc=\nd=201\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'common option: --config-profile' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '112' # Script's stdout: # Script's stderr: <> # Looks like you failed 1 test of 1. # Failed test 'unknown config profile -> error' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'foo: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=\nb=\nc=\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'unknown config profile but does not read config -> ok' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=102\nb=201\nc=201\nd=\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'subcommand' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^a=121\nb=201\nc=201\nd=201\ne=$)' # Looks like you failed 2 tests of 2. # Failed test 'subcommand + --config-profile' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'sum: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^0$)' # Looks like you failed 2 tests of 2. # Failed test 'array-ify if argument is array' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Failed test 'exit_code' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 380. # got: '200' # expected: '0' # Script's stdout: # Script's stderr: <> # Failed test 'stdout_like' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 393. # 'prog3: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # ' # doesn't match '(?^:^"a=101\\nb=\\nc=\\nd=\\ne=")' # Looks like you failed 2 tests of 2. # Failed test 'can also set common option' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 426. # Looks like you failed 13 tests of 14. # Failed test 'config file' # at C:/cpanfly-5.20-64/var/megalib/Test/Perinci/CmdLine.pm line 493. # there are failing tests, not deleting tempdir C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r # Looks like you failed 17 tests of 18. t/suite.t ................ # Subtest: help action ok 1 - dummy # Subtest: --help # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliZbFPy997 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliZbFPy997', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '--help' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - --help # Subtest: + is not accepted as option starter # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clihP4zhKSS # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clihP4zhKSS', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '+h' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 3 - + is not accepted as option starter # Subtest: + is not accepted as option starter (2) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli8vDvgrAD # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli8vDvgrAD', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '+help' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 4 - + is not accepted as option starter (2) # Subtest: extra args is okay # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clisLIYMrZC # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clisLIYMrZC', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '--help', # '1', # '2', # '3' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - extra args is okay # Subtest: help for cli with subcommands # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliql7vb4Ay # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliql7vb4Ay', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'sc1' => '/Perinci/Examples/Tiny/noop' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # '--help' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - help for cli with subcommands # Subtest: help on a subcommand # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliBte6eVCm # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliBte6eVCm', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'sc1' => '/Perinci/Examples/Tiny/noop' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # 'sc1', # '--help' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like ok 3 - stdout_unlike 1..3 not ok 7 - help on a subcommand 1..7 not ok 1 - help action # Subtest: version action ok 1 - dummy # Subtest: --version # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\climdvl2N2e # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\climdvl2N2e', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '--version' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - --version 1..2 not ok 2 - version action # Subtest: subcommands action ok 1 - dummy # Subtest: --subcommands # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clivhwi13sc # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clivhwi13sc', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'noop' => '/Perinci/Examples/Tiny/noop', # 'odd_even' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # '--subcommands' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code ok 2 - stdout_like 1..2 ok 2 - --subcommands # Subtest: unknown subcommand = error # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliTYHOi5Ar # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliTYHOi5Ar', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'noop' => '/Perinci/Examples/Tiny/noop', # 'odd_even' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # 'foo' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 3 - unknown subcommand = error # Subtest: default_subcommand # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clid5aFK1MN # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'default_subcommand' => 'noop', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clid5aFK1MN', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'noop' => '/Perinci/Examples/Tiny/noop', # 'odd_even' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - default_subcommand # Subtest: default_subcommand 2 # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli2AhTcB20 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'default_subcommand' => 'odd_even', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli2AhTcB20', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'noop' => '/Perinci/Examples/Tiny/noop', # 'odd_even' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 5 - default_subcommand 2 1..5 not ok 3 - subcommands action # Subtest: call action ok 1 - dummy # Subtest: embedded function+meta works # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clidthmXl7h # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'code_before_instantiate_cmdline' => ' # our %SPEC; # $SPEC{square} = {v=>1.1, args=>{num=>{schema=>\'num*\', req=>1, pos=>0}}}; # sub square { my %args=@_; [200, "OK", $args{num}**2] } # ', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clidthmXl7h', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/main/square' # } # argv: [ # '12' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - embedded function+meta works # Subtest: extra args not allowed # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliuTsHM_Xr # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliuTsHM_Xr', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/noop' # } # argv: [ # '1' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 3 - extra args not allowed # Subtest: missing required args -> error # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicEjFfgGo # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicEjFfgGo', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/odd_even' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 4 - missing required args -> error # Subtest: common option: --format # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliOvXa_CGX # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliOvXa_CGX', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/Args/as_is' # } # argv: [ # '--arg', # 'abc', # '--format', # 'json' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - common option: --format # Subtest: common option: --json # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliSryp2gRQ # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliSryp2gRQ', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/Args/as_is' # } # argv: [ # '--arg', # 'abc', # '--json' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - common option: --json # Subtest: common option: --naked-res # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliPAsNkGie # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliPAsNkGie', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/Args/as_is' # } # argv: [ # '--arg', # 'abc', # '--json', # '--naked-res' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 7 - common option: --naked-res # Subtest: common option: --no-naked-res # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clixcVJ3deX # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clixcVJ3deX', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/Args/as_is' # } # argv: [ # '--arg', # 'abc', # '--json', # '--no-naked-res' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 8 - common option: --no-naked-res # Subtest: common option: --cmd # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clin1FxzLmN # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'default_subcommand' => 'noop', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clin1FxzLmN', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'noop' => '/Perinci/Examples/Tiny/noop', # 'odd_even' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # '--cmd', # 'odd_even', # '5' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 9 - common option: --cmd # Subtest: json argument # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliod7Is8aS # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliod7Is8aS', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/Args/as_is' # } # argv: [ # '--arg-json', # '["a","b"]', # '--json' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 10 - json argument # Subtest: can handle function which returns naked result # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliLx7jiubx # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliLx7jiubx', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/hello_naked' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 11 - can handle function which returns naked result 1..11 not ok 4 - call action # Subtest: cmdline_src (error cases) ok 1 - dummy # Subtest: unknown value # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliHyJG2PY7 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliHyJG2PY7', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_unknown' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 2 - unknown value # Subtest: arg type not str/array # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliKYF3nGBT # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliKYF3nGBT', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_invalid_arg_type' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 3 - arg type not str/array # Subtest: multiple stdin # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliIehIorgH # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliIehIorgH', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_multi_stdin' # } # argv: [ # 'a', # 'b' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 4 - multiple stdin 1..4 not ok 5 - cmdline_src (error cases) # Subtest: cmdline_src (file) ok 1 - dummy # Subtest: file 1 # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliylaWORFE # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliylaWORFE', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--a1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - file 1 # Subtest: file 1 (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clinl7zg8sZ # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clinl7zg8sZ', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--json', # '--a1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like not ok 3 - stdout_like 1..3 not ok 3 - file 1 (special hint arguments passed) # Subtest: file 2 # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliYQMkzYl4 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliYQMkzYl4', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--a1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1', # '--a2', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile2' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - file 2 # Subtest: file 2 (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicoGKLrAy # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicoGKLrAy', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--json', # '--a1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1', # '--a2', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile2' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like not ok 3 - stdout_like not ok 4 - stdout_like not ok 5 - stdout_like 1..5 not ok 5 - file 2 (special hint arguments passed) # Subtest: file not found # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliu3Ggf5j0 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliu3Ggf5j0', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--a1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1/x' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 6 - file not found # Subtest: file, missing required arg # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliWJzVGP4Z # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliWJzVGP4Z', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_file' # } # argv: [ # '--a2', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile2' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 7 - file, missing required arg 1..7 not ok 6 - cmdline_src (file) # Subtest: cmdline_src (stdin) ok 1 - dummy # Subtest: stdin str # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli_K2ioS8t # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli_K2ioS8t', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_str' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - stdin str # Subtest: stdin str (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clinr9uTH0l # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clinr9uTH0l', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_str' # } # argv: [ # '--json' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - stdin str (special hint arguments passed) # Subtest: stdin array # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliR3OOreJ9 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliR3OOreJ9', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_array' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - stdin array # Subtest: stdin + arg set to "-" # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicUvM2DQl # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicUvM2DQl', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_str' # } # argv: [ # '--a1', # '-' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - stdin + arg set to "-" # Subtest: stdin + arg set to non "-" # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli0QUFBxCy # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli0QUFBxCy', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_str' # } # argv: [ # '--a1', # 'x' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 6 - stdin + arg set to non "-" 1..6 not ok 7 - cmdline_src (stdin) # Subtest: cmdline_src (stdin_line) ok 1 - dummy # Subtest: stdin_line + from stdin # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliAZyamceR # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliAZyamceR', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_line' # } # argv: [ # '--a2', # 'bar' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - stdin_line + from stdin # Subtest: stdin_line + from stdin (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliKu8I6yz3 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliKu8I6yz3', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_line' # } # argv: [ # '--json', # '--a2', # 'bar' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - stdin_line + from stdin (special hint arguments passed) # Subtest: stdin_line + from cmdline # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliGQYZ0Tdz # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliGQYZ0Tdz', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_line' # } # argv: [ # '--a2', # 'bar', # '--a1', # 'qux' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - stdin_line + from cmdline # Subtest: multi stdin_line # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clii8PzLW72 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clii8PzLW72', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_multi_stdin_line' # } # argv: [ # '--a3', # 'baz' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - multi stdin_line 1..5 not ok 8 - cmdline_src (stdin_line) # Subtest: cmdline_src (stdin_or_file) ok 1 - dummy # Subtest: stdin_or_file file # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clisA690adS # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clisA690adS', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_str' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - stdin_or_file file # Subtest: stdin_or_file file (extra argument) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliLLpk095i # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliLLpk095i', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_str' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - stdin_or_file file (extra argument) # Subtest: stdin_or_file file (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicr5l1cqd # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicr5l1cqd', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_str' # } # argv: [ # '--json', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like not ok 3 - stdout_like 1..3 not ok 4 - stdin_or_file file (special hint arguments passed) # Subtest: stdin_or_files file not found # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicgVf866U # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicgVf866U', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_str' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1/x' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 5 - stdin_or_files file not found # Subtest: stdin_or_file stdin str # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cligZnwndwc # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cligZnwndwc', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_str' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - stdin_or_file stdin str # Subtest: stdin_or_file stdin str # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliX6aS5JPb # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliX6aS5JPb', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_file_array' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 7 - stdin_or_file stdin str 1..7 not ok 9 - cmdline_src (stdin_or_file) # Subtest: cmdline_src (stdin_or_files) ok 1 - dummy # Subtest: stdin_or_files file # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli_L9_oswr # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli_L9_oswr', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_files_array' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile2' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - stdin_or_files file # Subtest: stdin_or_files file (special hint arguments passed) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli3hb35jPG # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli3hb35jPG', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_files_str' # } # argv: [ # '--json', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1' # ] # Script's stdout: <[500,"Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\lib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Lite-1.72-JqHuf1\\blib\\arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\\cpanfly-5.20-64\\var\\tmp\\cpan_build\\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144.",null,{"stream":0}] # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like not ok 3 - stdout_like 1..3 not ok 3 - stdin_or_files file (special hint arguments passed) # Subtest: stdin_or_files file not found # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clipqOKy3kv # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clipqOKy3kv', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_files_str' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile1/x' # ] # Script's stdout: # Script's stderr: <> ok 1 - exit_code 1..1 ok 4 - stdin_or_files file not found # Subtest: stdin_or_files stdin str # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli4tSWLTNX # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli4tSWLTNX', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_files_str' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - stdin_or_files stdin str # Subtest: stdin_or_files stdin str # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliKBxb_USv # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliKBxb_USv', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_files_array' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - stdin_or_files stdin str 1..6 not ok 10 - cmdline_src (stdin_or_files) # Subtest: cmdline_src (stdin_or_args) ok 1 - dummy # Subtest: from arg # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliGXZxCaSs # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliGXZxCaSs', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_args_array' # } # argv: [ # '--a1', # 'x' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - from arg # Subtest: from stdin # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliqa4b5a7d # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliqa4b5a7d', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineSrc/cmdline_src_stdin_or_args_array' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - from stdin 1..3 not ok 11 - cmdline_src (stdin_or_args) # Subtest: dry-run ok 1 - dummy # Subtest: dry-run (via env, 0) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliuBrigdeF # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliuBrigdeF', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/test_dry_run' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - dry-run (via env, 0) # Subtest: dry-run (via env, 1) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clicILGImeQ # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clicILGImeQ', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/test_dry_run' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - dry-run (via env, 1) # Subtest: dry-run (via cmdline opt) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliWlw3dZUc # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliWlw3dZUc', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/test_dry_run' # } # argv: [ # '--dry-run' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - dry-run (via cmdline opt) 1..4 not ok 12 - dry-run # Subtest: tx ok 1 - dummy # Subtest: dry_run (using tx) (w/o) 1..0 # SKIP Has one of the exclude_tag: tx ok 2 # skip Has one of the exclude_tag: tx # Subtest: dry_run (using tx) (w/) 1..0 # SKIP Has one of the exclude_tag: tx ok 3 # skip Has one of the exclude_tag: tx 1..3 ok 13 - tx # Subtest: streaming ok 1 - dummy # Subtest: stream input, simple type, chomp on # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliRScgLp4h # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliRScgLp4h', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Stream/count_lines' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile-str' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - stream input, simple type, chomp on # Subtest: stream input, simple type, chomp off # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliuUh2Rzq5 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliuUh2Rzq5', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Stream/wc' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile-str' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - stream input, simple type, chomp off # Subtest: stream input, json stream # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliZY4iF3Af # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliZY4iF3Af', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Stream/wc_keys' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile-hash-json' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - stream input, json stream # Subtest: stream input, simple type, word validation 1..0 # SKIP Has one of the exclude_tag: validate-streaming-input ok 5 # skip Has one of the exclude_tag: validate-streaming-input # Subtest: stream input, simple types, word validation, error 1..0 # SKIP Has one of the exclude_tag: validate-streaming-input ok 6 # skip Has one of the exclude_tag: validate-streaming-input # Subtest: stream input, simple types, word validation, error 1..0 # SKIP Has one of the exclude_tag: validate-streaming-input ok 7 # skip Has one of the exclude_tag: validate-streaming-input # Subtest: stream input, json stream, error 1..0 # SKIP Has one of the exclude_tag: validate-streaming-input ok 8 # skip Has one of the exclude_tag: validate-streaming-input # Subtest: stream result, simple types, word validation 1..0 # SKIP Has one of the exclude_tag: validate-streaming-result ok 9 # skip Has one of the exclude_tag: validate-streaming-result # Subtest: stream result, simple types, word validation, error 1..0 # SKIP Has one of the exclude_tag: validate-streaming-result ok 10 # skip Has one of the exclude_tag: validate-streaming-result # Subtest: stream result, json stream # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliuA9Dm8ut # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliuA9Dm8ut', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Stream/produce_hashes' # } # argv: [ # '-n', # '3' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 11 - stream result, json stream # Subtest: stream input+result, simple type, float validation # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliaY0QxvVH # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliaY0QxvVH', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Stream/square_nums' # } # argv: [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/infile-int' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 12 - stream input+result, simple type, float validation # Subtest: stream input+result, simple type, float validation, error 1..0 # SKIP Has one of the exclude_tag: validate-streaming-input ok 13 # skip Has one of the exclude_tag: validate-streaming-input 1..13 not ok 14 - streaming # Subtest: result metadata ok 1 - dummy # Subtest: cmdline.exit_code # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliwSmkpfgH # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliwSmkpfgH', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineResMeta/exit_code' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 2 - cmdline.exit_code # Subtest: cmdline.result # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliZHsSSBxs # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliZHsSSBxs', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineResMeta/result' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - cmdline.result # Subtest: cmdline.default_format # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliEGXSQx2b # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliEGXSQx2b', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineResMeta/default_format' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - cmdline.default_format # Subtest: cmdline.default_format (overriden by cmdline opt) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliI6moiFcg # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliI6moiFcg', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineResMeta/default_format' # } # argv: [ # '--format', # 'text' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - cmdline.default_format (overriden by cmdline opt) # Subtest: cmdline.skip_format # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliGRjTPJIU # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliGRjTPJIU', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/CmdLineResMeta/skip_format' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - cmdline.skip_format 1..6 not ok 15 - result metadata # Subtest: completion ok 1 - dummy # Subtest: self-completion works # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliTH_rMVda # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliTH_rMVda', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'url' => '/Perinci/Examples/Tiny/odd_even' # } # argv: [] # Script's stdout: <> # Script's stderr: not ok 1 - exit_code not ok 2 - answer 1..2 not ok 2 - self-completion works # Subtest: completion of subcommand name # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clii1EEUeKo # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clii1EEUeKo', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'sc1' => '/Perinci/Examples/Tiny/noop', # 'sc2' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [] # Script's stdout: <> # Script's stderr: not ok 1 - exit_code not ok 2 - answer 1..2 not ok 3 - completion of subcommand name # Subtest: completion of subcommand option # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliznDU6H5S # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliznDU6H5S', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 0, # 'subcommands' => { # 'sc1' => '/Perinci/Examples/Tiny/noop', # 'sc2' => '/Perinci/Examples/Tiny/odd_even' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [] # Script's stdout: <> # Script's stderr: not ok 1 - exit_code not ok 2 - answer 1..2 not ok 4 - completion of subcommand option 1..4 not ok 16 - completion # Subtest: env ok 1 - dummy # Subtest: env read # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli3xPvUCuk # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli3xPvUCuk', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 1, # 'script_name' => 'sum-nums', # 'url' => '/Perinci/Examples/Tiny/sum' # } # argv: [ # '3' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - env read # Subtest: default env name prefixed by _ if script name starts with number # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli0nBbFuFu # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli0nBbFuFu', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 1, # 'script_name' => '0sum-nums', # 'url' => '/Perinci/Examples/Tiny/sum' # } # argv: [ # '3' # ] # Script's stdout: <0sum-nums: ERROR 500: Died: Can't locate Sah/Schema/rinci/function_meta.pm in @INC (you may need to install the Sah::Schema::rinci::function_meta module) (@INC contains: C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\lib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Lite-1.72-JqHuf1\blib\arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib C:/cpanfly-5.20-64/var/megalib C:/Perl64-5.20/site/lib C:/Perl64-5.20/lib .) at C:/cpanfly-5.20-64/var/megalib/Perinci/Sub/Normalize.pm line 144. # > # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - default env name prefixed by _ if script name starts with number # Subtest: turned off via --no-env # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clii4HkXRLH # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clii4HkXRLH', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 1, # 'script_name' => 'sum-nums', # 'url' => '/Perinci/Examples/Tiny/sum' # } # argv: [ # '--no-env', # '3' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - turned off via --no-env # Subtest: attr:env_name # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliIdVQdSkj # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'env_name' => 'foo_opt', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliIdVQdSkj', # 'overwrite' => 1, # 'read_config' => 0, # 'read_env' => 1, # 'script_name' => 'sum-nums', # 'url' => '/Perinci/Examples/Tiny/sum' # } # argv: [ # '3' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - attr:env_name 1..5 not ok 17 - env # Subtest: config file ok 1 - dummy # Subtest: attr:config_dirs # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli8YjcgNZl # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli8YjcgNZl', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 2 - attr:config_dirs # Subtest: attr:config_filename # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clix2iS2KTq # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'config_filename' => 'prog2.conf', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clix2iS2KTq', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 3 - attr:config_filename # Subtest: attr:config_filename (hash record) # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliHS3DynuW # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'config_filename' => [ # { # 'filename' => 'prog4.conf', # 'section' => 'prog' # }, # 'prog2.conf' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliHS3DynuW', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 4 - attr:config_filename (hash record) # Subtest: attr:config_filename (hash record) + --config-profile # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliUNQrcG9t # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'config_filename' => [ # { # 'filename' => 'prog4.conf', # 'section' => 'prog' # }, # 'prog2.conf' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliUNQrcG9t', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--config-profile', # 'profile1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 5 - attr:config_filename (hash record) + --config-profile # Subtest: common option: --no-config # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clijewB87Ug # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clijewB87Ug', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--no-config' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 6 - common option: --no-config # Subtest: common option: --config-path # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cli7qagNo6Y # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cli7qagNo6Y', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--config-path', # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r/prog.conf' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 7 - common option: --config-path # Subtest: common option: --config-profile # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\clioarK4x3W # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\clioarK4x3W', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--config-profile=profile1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 8 - common option: --config-profile # Subtest: unknown config profile -> error # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliULHFIGRP # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliULHFIGRP', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--config-profile=foo' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code 1..1 not ok 9 - unknown config profile -> error # Subtest: unknown config profile but does not read config -> ok # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\climeNp7WI6 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\climeNp7WI6', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'foo', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [ # '--config-profile=bar' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 10 - unknown config profile but does not read config -> ok # Subtest: subcommand # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliFmRbhW0o # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliFmRbhW0o', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'subcommands' => { # 'subcommand1' => '/Perinci/Examples/Tiny/noop2' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # 'subcommand1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 11 - subcommand # Subtest: subcommand + --config-profile # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliFmhocbL2 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliFmhocbL2', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog', # 'subcommands' => { # 'subcommand1' => '/Perinci/Examples/Tiny/noop2' # }, # 'url' => '/Perinci/Examples/Tiny/' # } # argv: [ # '--config-profile=profile1', # 'subcommand1' # ] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 12 - subcommand + --config-profile # Subtest: array-ify if argument is array # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliJzIhGQE4 # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliJzIhGQE4', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'sum', # 'url' => '/Perinci/Examples/Tiny/sum' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 13 - array-ify if argument is array # Subtest: can also set common option # Generated CLI script at C:\cpanfly-5.20-64\var\tmp\M8KzIKAU9r\cliq4i8IWsb # gen_pericmd_script args: { # 'cmdline' => 'Perinci::CmdLine::Lite', # 'config_dirs' => [ # 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r' # ], # 'output_file' => 'C:\\cpanfly-5.20-64\\var\\tmp\\M8KzIKAU9r\\cliq4i8IWsb', # 'overwrite' => 1, # 'read_config' => 1, # 'read_env' => 0, # 'script_name' => 'prog3', # 'url' => '/Perinci/Examples/Tiny/noop2' # } # argv: [] # Script's stdout: # Script's stderr: <> not ok 1 - exit_code not ok 2 - stdout_like 1..2 not ok 14 - can also set common option 1..14 not ok 18 - config file 1..18 Dubious, test returned 17 (wstat 4352, 0x1100) Failed 17/18 subtests Test Summary Report ------------------- t/suite.t (Wstat: 4352 Tests: 18 Failed: 17) Failed tests: 1-12, 14-18 Non-zero exit status: 17 Files=4, Tests=20, 26 wallclock secs ( 0.22 usr + 0.00 sys = 0.22 CPU) Result: FAIL Failed 1/4 test programs. 17/20 subtests failed. dmake: Error code 145, while making 'test_dynamic' PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz Running test for module 'Data::Sah' PERLANCAR/Data-Sah-0.87.tar.gz Has already been unwrapped into directory C:\cpanfly-5.20-64\var\tmp\cpan_build\Data-Sah-0.87-GBUWDQ PERLANCAR/Data-Sah-0.87.tar.gz Has already been prepared PERLANCAR/Data-Sah-0.87.tar.gz Has already been made PERLANCAR/Data-Sah-0.87.tar.gz Won't repeat unsuccessful test during this command PERLANCAR/App-SahUtils-0.44.tar.gz Has already been unwrapped into directory C:\cpanfly-5.20-64\var\tmp\cpan_build\App-SahUtils-0.44-l2O29W PERLANCAR/App-SahUtils-0.44.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/App-SahUtils-0.44.tar.gz Prepending C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/arch C:\cpanfly-5.20-64\var\tmp\cpan_build\Perinci-CmdLine-Util-Config-1.71-kElHWl/blib/lib to PERL5LIB for 'make' Warning: Prerequisite 'Perinci::CmdLine::Base => 1.72' for 'PERLANCAR/App-SahUtils-0.44.tar.gz' failed when processing 'PERLANCAR/Perinci-CmdLine-Lite-1.72.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. Warning: Prerequisite 'Data::Sah => 0.84' for 'PERLANCAR/App-SahUtils-0.44.tar.gz' failed when processing 'PERLANCAR/Data-Sah-0.87.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp lib/App/SahUtils.pm blib\lib\App\SahUtils.pm "C:\Perl64-5.20\bin\perl.exe" -MExtUtils::Command -e cp -- bin/resolve-sah-schema blib\script\resolve-sah-schema pl2bat.bat blib\script\resolve-sah-schema The input line is too long. :WinNT was unexpected at this time. dmake: Error code 255, while making 'blib\script\resolve-sah-schema' dmake: 'blib\script\resolve-sah-schema' removed. PERLANCAR/App-SahUtils-0.44.tar.gz dmake -- NOT OK Finished 2017-03-11T00:04:27