# file : tests/manifest/testscript # license : MIT; see accompanying LICENSE file : package : { test.options += -p : name : { : valid : $* <>EOF : 1 name: libfoo.c++-2 version: 2.0.0 summary: Modern C++ parser license: LGPLv2 url: http://www.example.org/projects/libfoo/ email: libfoo-users@example.org EOF : short : $* <'stdin:2:7: error: invalid package name: length is less than two characters' != 0 : 1 name: b EOI : illegal : $* <'stdin:2:7: error: invalid package name: illegal name' != 0 : 1 name: com3 EOI : illegal-first-char : $* <'stdin:2:7: error: invalid package name: illegal first character (must be alphabetic)' != 0 : 1 name: 2b EOI : illegal-last-char : $* <'stdin:2:7: error: invalid package name: illegal last character (must be alphabetic, digit, or plus)' != 0 : 1 name: foo_ EOI : illegal-char : $* <'stdin:2:7: error: invalid package name: illegal character' != 0 : 1 name: foo'bar EOI } : upstream-version : { : valid : $* <>EOF : 1 name: libfoo version: 2.0.0 upstream-version: 0.28.0.abc.15 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. EOF : duplicate : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 upstream-version: 0.28.0.abc.15 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. upstream-version: 0.28.0.abc.15 EOI stdin:8:1: error: upstream package version redefinition EOE : stub : $* <>EOE != 0 : 1 name: libfoo version: 0+1 upstream-version: 0.28.0.abc.15 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. EOI stdin:4:1: error: upstream package version specified for a stub EOE } : topics : { : valid : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 topics: c++ library, foo library, libfoo EOF : too-many : $* <>EOE != 0 : 1 topics: c++, library, lib, foo, libfoo, libbar EOI stdin:2:9: error: up to five topics allowed EOE } : keywords : { : valid : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 keywords: c++ library lib foo libfoo EOF : redefinition : $* <>EOE != 0 : 1 keywords: c++ library lib foo libfoo keywords: c++ library lib foo libfoo EOI stdin:3:1: error: package keywords redefinition EOE : too-many : $* <>EOE != 0 : 1 keywords: c++ library lib foo libfoo libbar EOI stdin:2:11: error: up to five keywords allowed EOE : empty : $* <>EOE != 0 : 1 keywords: EOI stdin:2:10: error: empty package keywords specification EOE } : tags : { : truncate : $* <>EOO : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tags: c++, library, lib, foo, libfoo, libbar EOI : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 keywords: c++ library lib foo libfoo EOO : with-space : $* <>EOE != 0 : 1 tags: c++ library, lib, foo, libfoo EOI stdin:2:7: error: only single-word tags allowed EOE } : description-file : { : absolute-path : $* <>~%EOE% != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description-file: /README EOI %( stdin:6:19: error: package description-file path is absolute %| stdin:6:19: error: invalid package description file: invalid filesystem path %) EOE } : description-type : { : absent : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. EOF : not-text : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: image/gif EOI stdin:7:19: error: invalid package description type: text type expected EOE : deducing : { : fail : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description-file: README.rtf EOI stdin:6:19: error: invalid package description file: unknown text type EOE : ignore-unknown : $* -i <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description-file: README.rtf EOF } : unknown : { : fail : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdowns EOI stdin:7:19: error: invalid package description type: unknown text type EOE : ignore : $* -i <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdowns EOF } : plain : { : valid : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/plain EOF : invalid : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/plain; EOI stdin:7:19: error: invalid package description type: missing '=' EOE } : markdown : { : default : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown EOF : gfm : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variant=GFM EOF : common-mark : $* <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variant=CommonMark EOF : invalid-variant : { : fail : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variant=Original EOI stdin:7:19: error: invalid package description type: unknown text type EOE : ignore : $* -i <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variant=Original EOF } : invalid-parameter : { : fail : $* <>EOE != 0 : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variants=GFM EOI stdin:7:19: error: invalid package description type: unknown text type EOE : ignore : $* -i <>EOF : 1 name: libfoo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 description: libfoo is a very modern C++ XML parser. description-type: text/markdown; variants=GFM EOF } } } : src-url : { : no-scheme : $* <>EOE != 0 : 1 src-url: libfoo EOI stdin:2:10: error: invalid src url: no scheme EOE : rootless : $* <>EOE != 0 : 1 src-url: pkcs11:libfoo EOI stdin:2:10: error: invalid src url: rootless URL EOE : local : $* <>EOE != 0 : 1 src-url: file:/libfoo/bar EOI stdin:2:10: error: invalid src url: local URL EOE : authority-absent : $* <>EOE != 0 : 1 src-url: http:/libfoo/bar EOI stdin:2:10: error: invalid src url: no authority EOE : authority-empty : $* <>EOE != 0 : 1 src-url: http:///libfoo/bar EOI stdin:2:10: error: invalid src url: no authority EOE } : builds : { : empty : $* <"stdin:2:9: error: invalid package builds: class expression separator ':' expected" != 0 : 1 builds: default -gcc EOI } : depends : { : short-name : $* <'stdin:6:10: error: invalid prerequisite package name: length is less than two characters' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: b EOI : invalid-version-range : $* -c <'stdin:6:10: error: invalid prerequisite package constraint: min version is greater than max version' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar [$ 1.0.0] EOI : corner-case : $* <>EOF : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar [1.0.0+2 1.0.0] EOF : complete : { test.options += -c : final : $* <>EOO : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar == $ | libbaz ~$ | libbox ^$ | libfox [1.0 $) EOI : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar == 2.0.0 | libbaz ~2.0.0 | libbox ^2.0.0 | libfox [1.0 2.0.0) EOO : non-standard : $* <>EOO : 1 name: foo version: 2.0.0-x summary: Modern C++ parser license: LGPLv2 depends: bar == $ | libfox [1.0 $) EOI : 1 name: foo version: 2.0.0-x summary: Modern C++ parser license: LGPLv2 depends: bar == 2.0.0-x | libfox [1.0 2.0.0-x) EOO : non-standard-shortcut : $* <>EOE != 0 : 1 name: foo version: 2.0.0-x summary: Modern C++ parser license: LGPLv2 depends: bar ~$ EOI stdin:6:10: error: invalid prerequisite package constraint: dependent version is not standard EOE : latest-snapshot : $* <>EOO : 1 name: foo version: 2.0.0-a.0.z summary: Modern C++ parser license: LGPLv2 depends: bar == $ | libbaz ~$ | libbox ^$ | libfox [1.0 $) EOI : 1 name: foo version: 2.0.0-a.0.123 summary: Modern C++ parser license: LGPLv2 depends: bar == 2.0.0-a.0.123 | libbaz [2.0.0-a.0.1 2.0.0-a.1) | libbox\ [2.0.0-a.0.1 2.0.0-a.1) | libfox [1.0 2.0.0-a.0.123) EOO } : incomplete : $* <>EOF : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar == $ | libbaz ~$ | libbox ^$ | libfox [1.0 $) EOF } : tests : { : short-name : $* <'stdin:6:8: error: invalid tests package name: length is less than two characters' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: b EOI : invalid-version-range-incomplete : $* -c <'stdin:6:8: error: invalid tests package constraint: min version is greater than max version' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar [$ 1.0.0] EOI : invalid-version-range : $* -c <'stdin:6:8: error: invalid tests package constraint: min version is greater than max version' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar [2.0.0 1.0.0] EOI : invalid-version : $* -c <'stdin:6:8: error: invalid tests package constraint: invalid version: equal version endpoints are earliest' != 0 : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar == 2.0.0- EOI : complete : { test.options += -c : final : $* <>EOO : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar == $ EOI : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar == 2.0.0 EOO : non-standard-shortcut : $* <>EOE != 0 : 1 name: foo version: 2.0.0-x summary: Modern C++ parser license: LGPLv2 tests: bar ~$ EOI stdin:6:8: error: invalid tests package constraint: dependent version is not standard EOE } : incomplete : $* <>EOF : 1 name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 tests: bar == $ EOF } } : package-list : { : pkg : { test.options += -pp : roundtrip : $* <>EOF : 1 sha256sum: a2b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : name: libfoo version: 1.2.3+2 project: foo priority: high; Due to critical bug fix. summary: Modern XML parser license: LGPLv2, MIT; Both required. license: BSD keywords: c++ xml parser serializer pull description: libfoo is a very modern C++ XML parser. description-type: text/plain changes: 1.2.3+2: applied upstream patch for critical bug bar changes: 1.2.3+1: applied upstream patch for critical bug foo url: http://www.example.org/projects/libfoo/; libfoo project page url doc-url: http://www.example.org/projects/libfoo/man.xhtml; documentation page src-url: http://scm.example.com/?p=odb/libodb.git\;a=tree; source tree package-url: http://www.example.org/projects/libfoo/1.2.3+2; package url email: libfoo-users@example.org; Public mailing list, posts by non-members\ are allowed but moderated. package-email: libfoo-1.2.3+2@example.org; Bug reports are welcome. build-email: libfoo-builds@example.org; Mailing list for bbot notification\ emails. build-warning-email: libfoo-issues@example.org; Email for libfoo issues. depends: libz ~1.0.0 | libz ^2.0.0 depends: libgnutls <= 1.2.3 | libopenssl >= 2.3.4 depends: ? libboost-regex >= 1.52.0; Only if C++ compiler does not support\ C++11 . depends: ? libqtcore >= 5.0.0; Only if GUI is enabled. requires: linux | windows | macosx; symbian is coming. requires: c++11 requires: ? ; VC++ 12.0 or later if targeting Windows. requires: ? ; libc++ standard library if using Clang on Mac OS X. requires: zlib; Most Linux/UNIX systems already have one; or get it at\ www.zlib.net. tests: libfoo-tests examples: libfoo-examples == 1.2.3 benchmarks: libfoo-benchmarks ~1.2.0 builds: +!windows &( +gcc +clang ) +( +windows &msvc ) build-include: linux* build-include: freebsd* build-exclude: *; Only supports Linux and FreeBSD. location: libfoo-1.2.3+2.tar.bz2 sha256sum: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : name: libbar version: 3.4A.5+6 summary: Modern bar management framework license: LGPLv2 keywords: c++, xml, modern url: http://www.example.org/projects/libbar/ email: libbar-users@example.org build-email: depends: libbaz (1- 2-) | libbaz [3 4-) | libbaz (5 6] | libbaz [7 8] builds: default legacy; Default and legacy. builds: -windows; Not on Windows. build-exclude: *-msvc_14*/i?86-*; Linker crash. location: bar/libbar-3.4A.5+6.tbz sha256sum: d4b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : name: libbaz version: +2-3.4A.5+3 summary: Modern baz system license: LGPLv2 url: http://www.example.org/projects/libbar/ email: libbaz-users@example.org build-error-email: libbaz-issues@example.org; Email for libbaz issues. builds: default experimental location: libbaz/libbaz-+2-3.4A.5+3.tar.gz sha256sum: b5b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 EOF : dependency : { : incomplete : $* <'stdin:8:10: error: $ not allowed' != 0 : 1 sha256sum: a2b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 : name: foo version: 2.0.0 summary: Modern C++ parser license: LGPLv2 depends: bar == $ EOI } } : dir : { test.options += -dp : empty : $* <"" >:"" : non-empty : $* <>EOF : 1 location: hello/ : location: mhello/ EOF : duplicate : $* <'stdin:5:1: error: duplicate package manifest' != 0 : 1 location: hello/ : location: hello/ : location: mhello/ EOI } : git : { test.options += -gp : fragment : $* <>EOF : 1 location: hello/ fragment: ca602c2d46b0dca7a9ebc856871767b0ba6b74f3 : location: mhello/ fragment: ca602c2d46b0dca7a9ebc856871767b0ba6b74f3 EOF } } : repository-list : { : pkg : { test.options += -pr : roundtrip : $* <>EOF : 1 location: http://pkg.example.org/1/math type: pkg role: prerequisite : location: ../stable type: pkg role: complement : url: http://cppget.org email: repoman@cppget.org; General mailing list. summary: General C++ package repository description: This is the awesome C++ package repository full of exciting\ stuff. certificate: \ -----BEGIN CERTIFICATE----- MIIFLzCCAxegAwIBAgIJAJ71rMp8mDy1MA0GCSqGSIb3DQEBCwUAMDMxFzAVBgNV BAoMDkNvZGUgU3ludGhlc2lzMRgwFgYDVQQDDA9uYW1lOmNwcGdldC5vcmcwHhcN MTYwNDA4MTc1NTUwWhcNMTcwNDA4MTc1NTUwWjAzMRcwFQYDVQQKDA5Db2RlIFN5 bnRoZXNpczEYMBYGA1UEAwwPbmFtZTpjcHBnZXQub3JnMIICIjANBgkqhkiG9w0B AQEFAAOCAg8AMIICCgKCAgEAwj7lwxkr19ygfNIzQsiKkmyyRG0c5AwMrwvldEk7 2UIwz5kNb04zveUzQcfNFhau60+xC980Y4TKA4/ScfinyaDfp1I3pmiv4OSDUoBw 9e8a+4Jyo5fuiAXoAYaQyAdwvH1mIbYq1ObRfKW2MTrUXp/HRJAWHHBnv3VmCYBZ dllY1hasA+SBDMBv6iTXkKUIfEdNDk8cjUR3FjxaefIdip9pHR3G0y4iWctS1drq AKLE1J0KIJyPsJCvoZnzIeePaCNL/UtRup9mYi2vxHHFD4Ml5Bbp+gE6vq5XhcQz LeCcGYKB3UjVWuszcpFIoHACw9ja2JUumbTiclUDgLBk8WXJvLjOCNLp9i/MKQws p5CDfrNe2P6u63ZmtW2v0Qpj/6b6JQmqJaMgHQdDEBUFO3bjwm7yyXyvEjj/EAEJ pGziWZjan5NKGgKCX1JChQJloMHhzr42YMvceWTMJjAr07Es9vCsCS2KPvAKY7Mv yewAyK9ucFRDObZVuaFjU+WUTXB1munwO3Jso56EMxeFvu+W1B+m49XS3k/TlBvF HGnkiSaMwLEJvgFVgQPpG2gD39WDFqX28pWdLL4hM+hXUfdeH0OdXfq66CLu7P8d cgkZdHRs5UauxLzm1Qo06aLsm2HXrfDnmsd5ENi7RkiFMx1aLh3/cjZD0uHndQUC LEcCAwEAAaNGMEQwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUF BwMDMBoGA1UdEQQTMBGBD2luZm9AY3BwZ2V0Lm9yZzANBgkqhkiG9w0BAQsFAAOC AgEAHLfv2w82bBMgDgsRX8GU/3eK6CnyfRu4Auto1XjyHCrD6qcIdmebC0hihpSg 5xSlfVwjPRWBmg3z5/K8ln5jM6KKiWHd47OCfx+DW7wbesq2+6lS1btXpRR2pv7j zG+41Cncu/xVNs9F4CQluVn5xyWFVDUxQfkQqAE46EbkjAmq42y+1ZQnq2Zm47Wr iMRXQtg1yx7Fs2EpVU+sbW4ImuXgv0YbyYbI1lPhvmx8rIL6lybN3evEfIj7crh7 5abWPDZzA+1aNL5tiaSNrn3nS/BfJyEYhGMyy0bsekPZiaqGB1q/mgv2rmR/2SRL Tx+T7sthy/IHTOUbDTY0lUhjc6thQMncgGTaD4TC3QaXhdLWzO9XTh0K7U8BOMwh wppr1G5aTXY0PUB0+Hs+IQZ4mVfBvKO0Wn6GgoDAs/mW9qvbWP3ZnpdvhB52a49P g07JQ+R0QgBNQY7t0lT0mOpAPx79Dwc5R8jQCkx4gTr1bWtgyCvza+gpTgUQDOH5 nawOIIDOnRv4heFdvgfEQs2oKa3X4bM+BsgOx7OTvnWCzJy0IXo0uBbcTrMv9Z62 +KVwnghQdpURRnUpomt03cTwjqVJVrq287owGv8qqnuGcTTi1SgzNNYREFoljY58 CCj4yYvTUzXjcAUXaNC5YNw3JEQp8vmciuJwhyUkbifLrHU= -----END CERTIFICATE----- \ EOF : prerequisite-type : $* <>EOO : 1 url: http://cppget.org : location: http://example.org/math.git#master role: prerequisite : location: ../stable role: complement : location: ../unstable.git role: complement : location: git://example.org/foo#master type: git role: prerequisite : location: http://pkg.example.org/1/bar role: prerequisite trust: 37:CE:2C:A5:1D:CF:93:81:D7:07:46:AD:66:B3:C3:90:83:B8:96:9E:34:F0:E7:B3:A2:B0:6C:EF:66:A4:BE:65 EOI : 1 url: http://cppget.org : location: http://example.org/math.git#master type: git role: prerequisite : location: ../stable type: pkg role: complement : location: ../unstable.git type: git role: complement : location: git://example.org/foo#master type: git role: prerequisite : location: http://pkg.example.org/1/bar type: pkg role: prerequisite trust: 37:CE:2C:A5:1D:CF:93:81:D7:07:46:AD:66:B3:C3:90:83:B8:96:9E:34:F0:E7:B\ 3:A2:B0:6C:EF:66:A4:BE:65 EOO : no-base : $* <>EOO : 1 location: http://pkg.example.org/1/math type: pkg role: prerequisite : location: ../stable type: pkg role: complement EOO : base-manifest-redefinition : $* <'stdin:3:1: error: base repository manifest redefinition' != 0 : 1 url: http://cppget.org : url: http://cppget.org EOI } : git : { test.options += -gr : roundtrip : $* <>EOF : 1 location: http://example.org/math.git#master type: git role: prerequisite : location: ../stable.git#stable type: git role: complement : location: ../unstable.git type: git role: complement : url: http://cppget.org email: repoman@cppget.org; General mailing list. summary: General C++ package repository description: This is the awesome C++ package repository full of exciting\ stuff. EOF : fragment : $* <>EOF : 1 location: http://example.org/math.git#master type: git role: prerequisite fragment: ca602c2d46b0dca7a9ebc856871767b0ba6b74f3 : location: ../stable.git#stable type: git role: complement fragment: ca602c2d46b0dca7a9ebc856871767b0ba6b74f3 : location: ../unstable.git type: git role: complement fragment: ca602c2d46b0dca7a9ebc856871767b0ba6b74f3 : location: http://example.org/math.git#master type: git role: prerequisite fragment: abc1232d46b0dca7a9ebc856871767b0ba6b74f3 : location: ../stable.git#stable type: git role: complement fragment: abc1232d46b0dca7a9ebc856871767b0ba6b74f3 : url: http://cppget.org email: repoman@cppget.org; General mailing list. summary: General C++ package repository description: This is the awesome C++ package repository full of exciting\ stuff. EOF : prerequisite-type : $* <>EOO : 1 location: http://example.org/math.git#master role: prerequisite : location: ../stable.git#stable role: complement : location: git://example.org/foo#master type: git role: prerequisite : location: http://pkg.example.org/1/bar role: prerequisite : url: http://cppget.org EOI : 1 location: http://example.org/math.git#master type: git role: prerequisite : location: ../stable.git#stable type: git role: complement : location: git://example.org/foo#master type: git role: prerequisite : location: http://pkg.example.org/1/bar type: pkg role: prerequisite : url: http://cppget.org EOO } : dir : { test.options += -dr : roundtrip : $* <>EOF : 1 location: ../stable type: dir role: complement : EOF : prerequisite-with-fragment : $* <>EOE != 0 : 1 location: ../stable.git#stable type: dir role: complement : EOI stdin:2:11: error: unexpected fragment for dir repository EOE } } : signature : { : roundtrip : $* -s <>EOF : 1 sha256sum: a2b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 signature: \ geWdw7Gm+Rt+CLDMBby5Y796E8rxwImb0bmcZwGWar9D3vkFm9Kjh00Buuo1PuU7tP1dV6yvRbH8 NzC0IryEoUJHx9909AJ449ET9Zb+C3ykEeBlKH2wonj7cAVK9ZEDpPEGAtp56XWZQEawl50mwq6t XkZAABxtOswXiicdh3HK7kaPHp38/9CBMc0rva6wDnkbTigUYA2ULqLtP5a5mLovVc48zI9A/hmb Qx1/Nr7nzTZNDGK7CwTAb1fPam9rZklTfCTPSPUUjvWjM9XdY8cbRE1FrE14TXdyQPxCLzHO2dUO YWH5/qMikEoCYhYXQ6KhekoT/MUiVC3PMcYQbYOrOtSxq6RcgnymexBe1XIyld5Rfo1eXu8TK11r QPULIqAGy6RwEUhGznuEiGHQwb1UymNyJ/qgr4vBPjJtlvptqG5XNmtiJ22f07nmeVRi2Vg2UyOw HoVpy5t/w0tEnUXPA39Vt0v1bUm7Knhc8qL4JFEqK/j/CzEHzEtAjn0aoGuKubCO0WUa+v6ZlkLU YrNUIdgT1wgj4yEhLO3g+NsnxFH05D2sfR16rrkI2E6st5crAHR8FOl2FDsWxgKqNbzXZw7rl+Fa TobGycX7MDf2mbBmR/KmEkMBJ4mziWLAycSAGyE5VRYDwHPJlQE0143wBzT8eNw4VLm/r+88VYw= \ EOF } : effective-constraints : { test.options += -ec : regular : $* '1.2.3+1' <>EOO [1.0 $) [1.0 $] [$ 1.2.4] ($ 1.2.4] == $ >= $ EOI [1.0 $) [1.0 1.2.3) [1.0 $] [1.0 1.2.3] [$ 1.2.4] [1.2.3 1.2.4] ($ 1.2.4] (1.2.3 1.2.4] == $ == 1.2.3 >= $ >= 1.2.3 EOO : shortcut : { : final : { $* '1.2.3+1' <'~$' >'~$ ~1.2.0' : tilda $* '1.2.3+1' <'^$' >'^$ ^1.0.0' : carrot } : pre-release : { : tilda : { $* '1.2.0-b.2' <'~$' >'~$ ~1.2.0-a.1' : no-final $* '1.2.1-a.1' <'~$' >'~$ ~1.2.0' : final-patch } : carrot : { $* '1.0.0-b.2' <'^$' >'^$ ^1.0.0-a.1' : no-final $* '1.0.1-a.1' <'^$' >'^$ ^1.0.0' : final-patch $* '1.1.0-b.2' <'^$' >'^$ ^1.0.0' : final-minor } } : snapshot : { : tilda : { $* '1.2.1-a.2.345' <'~$' >'~$ ~1.2.0' : patch $* '1.2.0-a.0.345' <'~$' >'~$ [1.2.0-a.0.1 1.2.0-a.1)' : minor $* '1.0.0-a.0.345' <'~$' >'~$ [1.0.0-a.0.1 1.0.0-a.1)' : major } : carrot : { $* '1.2.1-a.2.345' <'^$' >'^$ ^1.0.0' : patch $* '1.2.0-a.0.345' <'^$' >'^$ [1.2.0-a.0.1 1.2.0-a.1)' : minor $* '1.0.0-a.0.345' <'^$' >'^$ [1.0.0-a.0.1 1.0.0-a.1)' : major } } : invalid : { $* '1.2.3-' <'~$' 2>'dependent version is earliest' == 1 : earliest-version $* '1.2.3-a.0.z' <'~$' 2>'invalid version: dependent version is latest snapshot' == 1 : latest-version $* '0+1' <'~$' 2>'invalid version: dependent version is stub' == 1 : stub-version } } }